我有这个数据库结构
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这样的实体,因为它只是一个导航属性)
尝试用一些查询来解决这个问题导致我遇到麻烦,因为我无法使用一个结果作为参数来预期在第二个...需要一些我不知道如何实现的转换:
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;
需要一些帮助...
答案 0 :(得分:0)
var q = from s in context.Seminars
where s.Date > something
&& (!s.Events.Any())
select s;
您不会在Seminar
中显示导航属性,以便在EventSeminar
到Event
之间进行导航,因此如果我猜错了,请将其替换为以上内容。