如何在可查询和不可查询的数据中使用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和名称的列表。
最佳答案
假设allUsers
和selected
属于同一类型,则可以使用 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/