2010-02-03 2 views
1

Я получаю следующую ошибку, когда добавляю группировку linq.Получение ошибки linq с группой

Ошибка 5 «System.Linq.IGrouping» не содержит определение для «Описания» и не метод расширения «Описания» принимающего первый аргумент типа «System.Linq.IGrouping» может быть найдены (вы отсутствует с помощью директивы или ссылка на сборку?)

using (var db = new DataContext()) 
{ 
    var query = from emp in db.Employees 
           .Where(e=> e.IsDeleted == false && e.DivisionId == divisionId) 
       from rev in db.Reviews 
           .Where(r=> r.EmployeeID == emp.EmployeeId && r.IsDeleted == false && r.ReviewPeriodId == reviewPeriodId) 
           .DefaultIfEmpty() 
       from obj in db.Objectives 
           .Where(o=> o.ReviewId == rev.ReviewId && o.IsDeleted == false) 
           .DefaultIfEmpty() 
       from objps in db.ObjectiveProgressStatusLanguages 
           .Where(s=> s.ObjectiveProgressStatusId == obj.ObjectiveProgressStatusId && s.LanguageId == langueageId) 
           .DefaultIfEmpty() 
       group objps by new {objps.Description, objps.StatusId into opsgroup 

       select new 
       { 
        Status = opsgroup.Description, 
        StatusId = opsgroup.StatusId, 
        Count = opsgroup.Count() 
       }; 
    return query.CopyToDataTable(); 

ответ

1

Эти поля должны быть частью ключа. Попробуйте изменить его на:

select new { 
     Status = opsgroup.Key.Description, 
     StatusId = opsgroup.Key.StatusId, 
     Count = opsgroup.Count() 
    } 
+0

Спасибо, что сработало. –