我不知道如何在LINQ中使用嵌套選擇。 我怎樣才能將這個SQl表達式轉換爲LINQ?LINQ表達式中的嵌套選擇,如何?
Select i.ID, i.Impression,
(Select COUNT(ImpressionsId)
from DiaryImpressions
where DiaryPostsId = '2' AND ImpressionsId = i.ID) as Num from Impressions i
我不知道如何在LINQ中使用嵌套選擇。 我怎樣才能將這個SQl表達式轉換爲LINQ?LINQ表達式中的嵌套選擇,如何?
Select i.ID, i.Impression,
(Select COUNT(ImpressionsId)
from DiaryImpressions
where DiaryPostsId = '2' AND ImpressionsId = i.ID) as Num from Impressions i
from ...
select new {
i.Id,
i.Impression,
Count = context.DiaryImpressions.Count(d => d.DiaryPostsId == 2 && d.ImpressionsId == i.Id)
}
如果正確映射你的對象,就可以直接使用子女的關係:
Count = i.DiaryImpressions.Count(d => d.DiaryPostsId == 2)
謝謝你的回答Slaks –
真的嗎? DiaryPostsId是一個字符串?哦,好吧...
from i in context.Impressions
select new {
i.ID,
i.Impressions,
Num = (from d in context.DiaryImpressions
where d.DiaryPostsId == "2"
&& d.ImpressionsId == i.ID
select d).Count()
}
這樣的事情讓我尋找更好的解決方案。加入linq只會讓你哭...你可以考慮看看這個簡單但奇妙的工具(小巧)http://code.google.com/p/dapper-dot-net/ –
我相信這也可以改寫爲加入一個等效的RA模型。這些計劃雖然可能有點不同。 – 2011-12-02 20:30:10