2017-12-27 2 views
2

지점의 기존 영업 사원 목록이 model.Salesmen이고 List<ApplicationUser>입니다.C# Linq Lambda Left Join Right가 Null 인 곳

쉽게 추가 할 수 있도록 드롭 다운 메뉴를 채우기 위해 다른 모든 사용자의 목록을 생성하고 싶습니다. 내가 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();