LINQ - Method vs. Query
От: LoremIpsum Россия  
Дата: 11.07.08 18:06
Оценка:
Есть код
Выполняет фильтрацию массива проектов и при этом
считает запланированные часы по подчиненным задачам

var a = projects.AsEnumerable()
                .GroupJoin(tasks.AsEnumerable(), p => p.Id, t => t.ProjectId
                    , (p, pt) => {p.PlannedHours = pt.Sum(t => t.HoursPlanned); return p;})
                .Where(p =>
                    (p.Id == readParams.Id || 0 == readParams.Id)
                    && (p.CustomerId == readParams.ClientId || 0 == readParams.ClientId))
                .ToArray();


Возможно ли воспроизвести его в варианте Query Expression.
Фишка в том что в варианте Method Expression сумма пишется
прямо в свойство объетка, т.е. при выполнении запроса изменяются объекты коллекции
А вот на Query Expression — получается только "с прицепом"


var b = from p in projects.AsEnumerable()
                    join t in tasks.AsEnumerable() on p.Id equals t.ProjectId into pt
                    select new
                    {              
                        Project = p,
                        PlannedHours = pt.Sum(t => t.HoursPlanned)
                    } ;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.