我正在尝试LINQ查询,并且我已经被难住了一段时间。我试着查找文档,在这里,但我似乎找不到足够的片段来制作整个东西。
如果我用SQL写这个,查询将是
SELECT *
FROM (Person JOIN Event ON Person.ID = Event.PersonID) as t
Where (Event.Type = "Invitation") AND !Exists(SELECT *
FROM Event
WHERE Event.Type = "Something"
AND Event.Conference = "someString"
AND t.ID = Event.PersonID)
任何输入将非常感谢,即使你只有一个解决方案的一部分。
您的Event表似乎有Person的外键。这似乎不寻常,因为这意味着一个Event只能有一个人。我将假设您的Event表是这个模型中的多-多表。假设你在People和Events (PeopleEvents?)之间有一个关联,你应该能够像下面这样做(使用!Any来代替!Exists):
from person in People
from event in person.Events
where event.Type == "Invitation" &&
!person.Events.Any(event => event.Type == "Something" && event.Conference == "someString")
select new {person, event}
(注意,您可能希望在这里投影到其他结构中,而不是投影我在这里显示的选中的许多结构。)如果我们对你们的模型有更多的了解,或者你们想要实现的目标,我们可能会更有帮助。