Нужна помощь с синтаксисом LINQ to SQL - PullRequest
0 голосов
/ 09 июля 2011

Привет, я запутался, пытаясь построить группу по набору результатов в LINQ.

. Следующий TSQL получает то, что я хочу в LINQ, выражение:

select s.SiteDescription,count(*) as TotalIncidents
from Site as s,Incident as i
where s.SiteId = i.SiteId
group by s.SiteDescription

Но я хочу создать то же самое в LINQ в своем коде контроллера, вот что у меня есть, но это бесполезно, и я сегодня повсюду:

var qry = from s in _db.Sites
            join i in _db.Incidents on s.SiteId equals i.SiteId
            group s.SiteDescription
                into grp
                select new
                {
                    Site = grp.Key,
                    Count = grp.Select(x => x.Incidents).Distinct().Count()
                };

Мои ошибки:

Ошибка 27
Невозможно преобразовать лямбда-выражение в тип
'System.Collections.Generic.IEqualityComparer', так как это не тип делегата C: \ Documents and Settings \ Администратор \ Рабочий стол \ IRenewables_EMAS \ IRenewables_EMAS\ Controllers \ IncidentController.cs 40 23 Emas.Web
Ошибка 28
Аргументы типа для метода 'System.Linq.Enumerable.OrderBy (System.Collections.Generic.IEnumerable, System.Func)' не могут быть выведены изИспользование.Попробуйте указать аргументы типа явно.C: \ Documents and Settings \ Администратор \ Рабочий стол \ IRenewables_EMAS \ IRenewables_EMAS \ Controllers \ IncidentController.cs 51 33 Emas.Web
Ошибка 29
Ожидаемое контекстное ключевое слово "от" C: \ Documents and Settings \ Администратор \ Рабочий стол \ \IRenewables_EMAS \ IRenewables_EMAS \ Controllers \ IncidentController.cs 41 27 Emas.Web

Заранее спасибо,

1 Ответ

2 голосов
/ 09 июля 2011

Попробуйте это:

var qry =   from s in _db.Sites
            join i in _db.Incidents on s.SiteId equals i.SiteId
            group s by s.SiteDescription into grp
            select new
            {
                Site = grp.Key,
                Count =  grp.Count()
            };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...