2017-12-27 404 views
2

因此,我有一个分支model.Salesmen中的现有销售员列表为List<ApplicationUser>C#Linq Lambda左加入哪里权利为空

我想生成所有其他用户的列表来填充下拉菜单,以便于添加。我到目前为止已经写的,由this SO post启发:

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

的错误,我得到:

无法创建类型的常量值“Leads.Models.ApplicationUser”。只有原始类型或枚举类型在此上下文中受支持。

我在做什么错,我该如何解决?

+0

如果错误是在上一篇文章中,你为什么要做一个新的职位? – Danieboy

+0

你是如何得到'model.Salesmen'的? –

+0

@Danieboy错误不在上一点。这篇文章给了我90%的解决方案,但我的情况有点不同。 –

回答

2

由于EF无法将其转换为查询,因此无法将整个集合放入lambda表达式中。这样做:

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