2013-01-11 68 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