SQL для LINQ группы по - PullRequest
       19

SQL для LINQ группы по

0 голосов
/ 05 октября 2010

Я пытаюсь преобразовать следующий SQL в LINQ. Я имел успех с 1 группой по переменной, но не смог заставить это работать. Любая помощь будет оценена.

  select ContactID, EventID, Count=count(*) 
  from ScanLogs s, Exhibits e
  where s.ExhibitID = e.ExhibitID
  group by s.ContactID, e.EventID

Результат выглядит примерно так:

ContactID EventID Count
300009 2000048 2
300009 2000096 1
300036 2000096 1

Ответы [ 2 ]

3 голосов
/ 05 октября 2010

Я полагаю, что это сделает это:

var query = from s in ScanLogs
            from e in Exhibits
            where s.ExhibitID == e.ExhibitID
            group 1 by new { s.ContactID, e.EventID } into g
            select new { g.Key.ContactID, g.Key.EventID, Count = g.Count() };

Не важно, что сгруппировано (1 в данном случае), вы просто подсчитываете, сколько их.

Я, вероятно, использовал бы соединение однако.Это должно быть эквивалентно.

var query = from s in ScanLogs
            join e in Exhibits on s.ExhibitID equals e.ExhibitID
            group 1 by new { s.ContactID, e.EventID } into g
            select new { g.Key.ContactID, g.Key.EventID, Count = g.Count() };
0 голосов
/ 05 октября 2010

Другой вариант, использующий объединение и группирование по.

var query = from c in ScanLogs
            join d in Exhibits on c.ExhibitID equals d.ExhibitID
            group new{
             g.Key.ContactID,
             g.Key.EventID,
             Count = g.Count()
            }
            by new {
              c.ContacID, d.EventID
            } into g
            select g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...