2011-07-19 182 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} 

(注意,你可能希望在這裏投射到其他一些結構中,而不是投射出我在這裏展示的選擇多的結構。)如果我們有更多關於您的模型或您想要完成的信息,我們可能會提供更多幫助。