【问题标题】:show all AD group members who are not in a table显示不在表中的所有 AD 组成员
【发布时间】:2013-01-11 14:00:54
【问题描述】:

我如何将以下 sql 查询转换为 LINQ

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;

但你会知道它不起作用。

【问题讨论】:

标签: c# linq linq-to-sql active-directory


【解决方案1】:
var notLoggedIn = from groupMembers in groupPrincipal.Members
                  where !employeeRepository.Select(p=> p.adUserName).Contains(groupMembers.DisplayName)
                  select groupMembers;

【讨论】:

  • 谢谢您,您的解决方案确实有效。我的错,我应该比较 groupMembers.Name 而不是 groupMembers.DisplayName,它是星期五 :(
【解决方案2】:

我认为应该这样做:

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

【讨论】:

  • 抱歉@Lister,没用,选择 notLoggedIn 会引发构建错误,因此选择已登录,选择 groupMembers 会返回所有 groupMembers
  • 谢谢您,您的解决方案确实有效。我的错,我应该比较 groupMembers.Name 而不是 groupMembers.DisplayName,它是星期五 :( 但是将 Select notLoggedIn 更改为 Select groupMembers
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
相关资源
最近更新 更多