C#Linq Lambda左连接右边是空的[重复]

问题描述 投票:2回答: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();

我得到的错误:

无法创建“Leads.Models.ApplicationUser”类型的常量值。在此上下文中仅支持基元类型或枚举类型。

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

c# entity-framework linq lambda where
1个回答
2
投票

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

var salesMenIds = model.Salesmen.Select(s => s.Id);
db.Users.Where(u => !salesMenIds.Contains(u.Id)).OrderBy(u => u.Name).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.