NH 3.0 GA Linq Group By не работает - PullRequest
0 голосов
/ 17 декабря 2010

LINQ group by по-прежнему не поддерживается в NH 3.0 GA или я делаю что-то не так? Мой LINQ:

var q = from p in session.Query<Product>() 
        group p by p.Category into g 
        select new { 
                     Category = g.Key, 
                     TotalValue = g.Sum(p => p.UnitsInStock * p.Price) 
                   };

Ведьма преобразуется в следующий SQL:

     select category1_.Id as col_0_0_, 
             cast(sum(product0_.UnitsInStock*product0_.Price) as DOUBLE PRECISION) as col_1_0_, 
             category1_.Id as Id0_, 
             category1_.Name as Name0_ 
     from [Product] product0_ 
             left outer join [Category] category1_ on product0_.Category_id=category1_.Id 
     group by category1_.Id 

Поскольку category1_.Name не входит в предложение group by, это создает исключение SqlException.

Это известная ошибка? Есть ли обходной путь? Этот LINQ хорошо работает в EF 4.

1 Ответ

2 голосов
/ 17 декабря 2010

NHibernate group by недостаточно умен, чтобы добавить все свойства объекта при группировании по нему.

Альтернативой может быть использование идентификатора только в списке выбора, а затем использование session.Load вLinq-to-objects для проецирования объекта Category.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...