Я обновил код с 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).
Почему это внезапно начало происходить при обновлении?
Зачем считать счет здесь?
Что я могу сделать, чтобы это исправить?
решено ---------
Я уже разобрался.
Я устанавливал проекцию по критериям на Количество строк в другом месте кода.