2013-01-11 70 views
-1

我怎麼會在下面的SQL查詢轉換爲LINQ顯示所有AD組的成員誰在表中都沒有

select * 
from groupprincipal.members 
where displayname not in (select adusername 
          from employees) 

我想列出的Active Directory組不在員工表中的所有成員

我試圖

var notLoggedIn = from groupMembers in groupPrincipal.Members 
          from loggedIn in employeeRepository.All 
          where groupMembers.DisplayName != loggedIn.ActiveDirectoryName 
          select groupMembers; 

,但是你會知道它沒有工作。

+0

可能重複[LINQ到SQL中,而不是在(http://stackoverflow.com/questions/3047657/linq-to-sql -in-and-not-in) –

回答

2
var notLoggedIn = from groupMembers in groupPrincipal.Members 
        where !employeeRepository.Select(p=> p.adUserName).Contains(groupMembers.DisplayName) 
        select groupMembers; 
+0

嗯@Max,您的解決方案也不工作。 – Tappies

+0

謝謝你,解決方案DID工作。不好,我應該比較groupMembers.Name而不是groupMembers.DisplayName,它的星期五:( – Tappies

1

我相信這應該這樣做:的

var notLoggedIn = 
from groupMembers in groupPrincipal.Members 
where !(from loggedIn in employeeRepository.All 
     select loggedIn.ActiveDirectoryName).Contains(groupMembers.DisplayName) 
select notLoggedIn; 
+0

抱歉@Lister,沒有工作,請選擇notLoggedIn引發構建錯誤,所以請選擇loggedIn,選擇groupMembers返回所有groupMembers – Tappies

+0

謝謝,您的解決方案DID工作。我的壞,我應該比較groupMembers.Name而不是groupMembers.DisplayName,它的星期五:(然後更改選擇notLoggedIn選擇groupMembers – Tappies