У меня есть простой запрос NHibernate Linq (против MS SQL CE 4):
var productionStarts = (from p in session.Query<Production>()
orderby p.Start descending
select p.Start)
.Distinct()
.Take(maxProductionPlansPerOperation)
.ToArray();
, который в NH 3.2.0.4000 выдает исключение:
System.NotSupportedException occurred
Message=Dialect does not support variable limits.
Source=NHibernate
StackTrace:
at NHibernate.Dialect.Dialect.GetLimitString(SqlString queryString, Nullable`1 offset, Nullable`1 limit, Parameter offsetParameter, Parameter limitParameter) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Dialect\Dialect.cs:line 1707
InnerException:
Проблема вызывает ".Take(...)».Если закомментированный запрос работает.
Он отлично работает с NH 3.1, но больше не работает NH 3.2.
В некоторых старых постах я нашел рекомендацию использовать "MsSqlCe40Dialect", поэтому я изменилдиалект, но без эффекта.Я проверил, что NH использует правильный диалект, изучив свойства экземпляра ISessionFactory.
Есть предложения, как это исправить?