我正在尝试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)
即使您只有部分解决方案,也会非常感谢任何输入。
答案 0 :(得分:0)
您的事件表似乎具有Person的外键。这似乎不寻常,因为它意味着一个事件只能有一个人。我将假设您的Event表是此模型中的多个表。假设你有人与事件(PeopleEvents?)之间的关联,你应该能够用以下内容做到这一点(使用!Any代替!存在):
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}
(注意,你可能想在这里投射到其他一些结构,而不是投射我在这里展示的那些选择。)如果我们有关于你的模型的更多信息或者你想要完成什么,我们可能会更有帮助。