2
Iは、(MS SQL CE 4に対して)単純NHibernateはLINQクエリを有する
:NH 3.2.0.4000にスローNHibernateは3.2 - MsSqlCeDialect:方言変数限界をサポートしていない
var productionStarts = (from p in session.Query<Production>()
orderby p.Start descending
select p.Start)
.Distinct()
.Take(maxProductionPlansPerOperation)
.ToArray();
例外:
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インスタンスのプロパティを調べることによって正しい方言を使用していることを確認しました。
これを修正する方法を教えてください。