NHibernate Criteria добавляет Count (*) в sql без причины, которая вызывает ошибки SQL - PullRequest
1 голос
/ 16 мая 2011

Я обновил код с NHib 1.2 до 3.1. Мы использовали критерии NHibernate. Пример которого приведен ниже:

ICriteria crit = CreateCriteria();
crit.Add(Expression.Eq("EntityId", entity.Id));
crit.AddOrder(new Order("DateTime",true));

Мы устанавливаем FirstResult и maxResults, так как мы используем их для подкачки.

_criteria.SetFirstResult(startIndex);
_criteria.SetMaxResults(pageSize);
return _criteria.List<T>();

Но у нас есть созданное ниже исключение sql и sql

[SQL: SELECT TOP (@p0) count(*) as y0_ FROM dbo.tbl_EntityEvent this_ WHERE
this_.EntityId = @p1 ORDER BY this_.DateTime asc] --->
System.Data.SqlClient.SqlException: Column "dbo.tbl_EntityEvent.DateTime" 
is invalid in the ORDER BY clause because it is not contained in either an 
aggregate function or the GROUP BY clause.

Даже если мы не установим MaxResults и FirstResult, мы получим похожую ошибку (только без TOP (@ p0).

Почему это внезапно начало происходить при обновлении? Зачем считать счет здесь? Что я могу сделать, чтобы это исправить?

решено ---------

Я уже разобрался.

Я устанавливал проекцию по критериям на Количество строк в другом месте кода.

...