2011-03-07 3 views
0

는 내가 이벤트에 연결되지 않은 (자신의 클래스를 포함하여) 모든 세미나의 목록을 할LINQ 및 조건

EVENT 
--- EVENTID (PK) 

EVENTSEMINAR 
--- EVENTID (PFK) 
--- SEMINARID (PFK) 

SEMINAR 
--- SEMINARID (PK) 

SEMINARCLASS 
--- SEMINARID (PFK) 
--- CLASSID. (PK) 
--- Date 

이 데이터베이스 구조를 가지고 있고, 특정 날짜 이후에 발생합니다.

Select * 
from Seminar, SeminarClass 
Where (Seminar.SeminarId not in (select SeminarId 
           from EventSeminar) 
     and seminar.SeminarId = SeminarClass.SemianrId 
     and SeminarClass.Date > something); 

어떻게 이것을 LINQ 2 엔티티로 변환 할 수 있습니까? 몇 쿼리이를 실현하려 노력

난에 기대하는 매개 변수로 하나의 결과를 사용할 수 없기 때문에 나에게 몇 가지 문제가 발생

(이것은 단지 탐색 속성의로, EventSeminar 같은 그런 실체가 없다)

답변

0
var q = from s in context.Seminars 
     where s.Date > something 
       && (!s.Events.Any()) 
     select s; 

당신은에서 탐색 속성을 표시하지 않습니다 ...

var Seminars = from e in context.Event 
           .Include("Seminar") 
           .Where(x=>x.Seminar != null) 
       select e.Seminar; 

var SC = from c in context.Seminar.Except(Seminars) select c; 

가 도움이 필요하십니까 : 2는 .. 내가 달성하는 방법을 알고하지 않는 일부 전환이 필요 EventSeminar에서 Event까지의 탐색을위한이므로, 잘못 추측 한 경우 위의 내용으로 대체하십시오.

+0

SeminarClass에는 날짜가 있지만, 그렇지 않은 경우 s.Event.Any() (count == 0 사용)라는 올바른 방향을 가리 킵니다. – Dani

+0

SeminarClass의 카디널리티가 귀하의 질문에서 분명하지 않았습니다. 지금 대답 하시겠습니까, 아니면 도움이 필요하십니까? 그렇다면 '세미나 -> 세미나 클래스'의 카디널리티는 무엇입니까? –