2011-07-19 184 views
0

我想要一个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) 

任何投入将不胜感激,哪怕你只有一部分的解决方案。

+0

您可以使用以下工具将您的sql转换为linq http://www.sqltolinq.com/ – dknaack

回答

0

您的事件表似乎对Person有一个外键。这似乎不寻常,因为这意味着一个事件只能有一个人。我将假设你的事件表是这个模型中的许多表。假设你有人物和事件(?PeopleEvents)之间的关联,你应该能够像以下(使用任何替代的存在!!)要做到这一点:

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} 

(注意,你可能希望在这里投射到其他一些结构中,而不是投射出我在这里展示的选择多的结构。)如果我们有更多关于您的模型或您想要完成的信息,我们可能会提供更多帮助。