C#Linq Lambda左连接右边是空的

时间:2017-12-27 14:28:16

标签: c# entity-framework linq lambda where

所以我在[{1}}中的model.Salesmen作为List<ApplicationUser>的分支中列出了现有销售人员。

我想生成一个包含所有其他用户的列表,以填充下拉菜单以便于添加。到目前为止我所写的内容受到this SO post的启发:

db.Users.Where(u => !model.Salesmen.Any(m => u.Id == m.Id)).OrderBy(u => u.Name).ToList();

我得到的错误:

  

无法创建类型&#39; Leads.Models.ApplicationUser&#39;的常量值。在此上下文中仅支持原始类型或枚举类型。

我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:2)

您无法将整个集合放入lambda,因为EF无法将其转换为查询。这样做:

var salesMenIds = model.Salesmen.Select(s => s.Id);
db.Users.Where(u => !salesMenIds.Contains(u.Id)).OrderBy(u => u.Name).ToList();