2017-12-27 13 views
2

したがって、支店内の既存の営業担当者の一覧がmodel.Salesmenにあり、List<ApplicationUser>となっています。C#Linq Lambda Left Join Rightがヌルの場合

他のすべてのユーザーのリストを生成して、簡単に追加できるようにドロップダウンメニューを作成したいとします。私は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

「モデルセールスマン」はどうやっていますか? –

+0

@Danieboyエラーは前の点にありません。そのポストは私にソリューションの90%を与えましたが、私のケースは少し異なりました。 –

答えて

2

EFは照会に変換できないため、コレクション全体をラムダに入れることはできません。このようにしてください:

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