LINQ嵌套查询帮助



我正在尝试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}

(注意,您可能希望在这里投影到其他结构中,而不是投影我在这里显示的选中的许多结构。)如果我们对你们的模型有更多的了解,或者你们想要实现的目标,我们可能会更有帮助。

相关内容

  • 没有找到相关文章

最新更新