C#Linq Lambda左加入哪里权利为空
问题描述:
因此,我有一个分支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”。只有原始类型或枚举类型在此上下文中受支持。
我在做什么错,我该如何解决?
答
由于EF无法将其转换为查询,因此无法将整个集合放入lambda表达式中。这样做:
var salesMenIds = model.Salesmen.Select(s => s.Id);
db.Users.Where(u => !salesMenIds.Contains(u.Id)).OrderBy(u => u.Name).ToList();
如果错误是在上一篇文章中,你为什么要做一个新的职位? – Danieboy
你是如何得到'model.Salesmen'的? –
@Danieboy错误不在上一点。这篇文章给了我90%的解决方案,但我的情况有点不同。 –