Попробуйте это:
var q = from a in db.MyTable
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
Это почти то же самое, что и ваш, но ваш Count
получен другим способом, который мне кажется неправильным.
Если LLBLGen не понимает IGrouping.Key
, это может быть сложно ...
Чтобы проверить правильность синтаксиса LINQ или нет, я бы порекомендовал создать очень простой список в памяти для использования в качестве таблицы. Вот пример:
using System;
using System.Collections.Generic;
using System.Linq;
class Test
{
static void Main()
{
var data = new[] {
new { Id="X", Name="Jon" },
new { Id="Y", Name="Marc" },
new { Id="X", Name="Holly" },
};
var query = from a in data
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
foreach (var entry in query)
{
Console.WriteLine(entry);
}
}
}
Похоже, это дает мне правильные результаты.