2010-06-23 4 views
1

У меня есть запрос:LINQ запрос возвращает список списков

from m in dc.ReportingMonths 
where m.Month.Value == month 
select (from k in m.KPI_Actives 
     where k.DateActive.Year == year 
     select (from r in dc.ReportingViews 
       where r.KPIID == k.KPIID select r) 
     ); 

Очевидно, потому что вложенные запросы LINQ - каждый возвращающий IQueryable я получаю набор IQueryables в качестве результата.

Как написать аналогичный запрос, который вместо этого возвращает только один плоский список ReportingViews (по мере возврата последнего запроса) без использования циклов foreach для создания нового списка?

Спасибо!

ответ

6

Что-то вроде:

from m in dc.ReportingMonths where m.Month.Value == month 
from k in m.KPI_Actives 
where k.DateActive.Year == year 
from r in dc.ReportingViews 
where r.KPIID == k.KPIID 
select r; 

?

+1

Спасибо! Не понимал, что я мог бы сделать это без выборных утверждений в каждой точке. –

Смежные вопросы