如何在可查询和不可查询的数据中使用LINQ?

使用以下代码,我想以未选择的用户列表结尾,即allUsers中所有未选择的用户。

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID)
{
    var allUsers = Membership.GetAllUsers();
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID);
    ...?
}

我实际上想要一个适合在DropDownList(ASP.NET MVC)中使用的用户ID和名称的列表。

最佳答案

假设allUsersselected属于同一类型,则可以使用 Except 来完成此操作

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID)
{
    var allUsers = Membership.GetAllUsers();
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID);
    return allUsers.Except(selected);
}

但是,如果db.CompanyUsers已经拥有所有用户,而您所需要做的只是检索没有相关CompanyID的用户:
return db.CompanyUsers.Where(c => c.CompanyID != companyID);

关于c# - LINQ Join查找不在列表中的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/788485/

10-12 04:05