2017-12-27 460 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();