【问题标题】:LINQ Nested Query helpLINQ 嵌套查询帮助
【发布时间】:2011-07-19 17:05:02
【问题描述】:

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

任何意见都将不胜感激,即使您只有部分解决方案。

【问题讨论】:

  • 您可以使用以下工具将您的sql转换为linq sqltolinq.com

标签: sql linq sql-to-linq-conversion


【解决方案1】:

您的 Event 表似乎有一个 Person 的外键。这似乎不寻常,因为这意味着一个事件只能有一个人。我将假设您的事件表是此模型中的多对多表。假设您在人员和事件(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}

(请注意,您可能希望在此处投影到其他结构,而不是投影我在此处显示的多个选择。)如果我们有更多关于您的模型或您想要完成的信息的信息,我们可能会提供更多帮助.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多