Вложенные выделения в выражении LINQ, как? - PullRequest
1 голос
/ 03 декабря 2011

Я не знаю, как работать с вложенными выборками в LINQ.Как я могу преобразовать это выражение SQl в LINQ?

Select i.ID, i.Impression, 
(Select COUNT(ImpressionsId) 
    from DiaryImpressions 
    where DiaryPostsId = '2' AND ImpressionsId = i.ID) as Num from Impressions i

Ответы [ 2 ]

2 голосов
/ 03 декабря 2011

Серьезно?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()
}
0 голосов
/ 03 декабря 2011
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)
...