NH 3.0から3.1にアップグレードしてから、次のコードを使用する際に問題が発生しました。
criteria = session.CreateCriteria<User>()
.Add(SqlExpression.InG<User, int>(user => user.ID, toBeFechted)); // toBefetched is an IList<int>
これは正常にコンパイルされますが、実行すると、条件にIn条件を追加するとすぐに例外が発生します。
System.MissingMethodException:メソッドが見つかりません:NHibernate.Criterion.AbstractCriterion NHibernate.Criterion.Restrictions.InG(System.String、System.Collections.Generic.ICollection 1<**UNKNOWN TYPE**>).
at NHibernate.LambdaExtensions.SqlExpression.InG(Expression
1式、ICollection`1値)
Criteriaの代わりにQueryOverを使用してクエリを再構築できますが、それは機能しますが、それを行うには、時間がない多くのコードを掘り下げる必要があります。NH 3.0を使用しても、問題はありませんでした。
NH 3.1で何か変更がありましたか、それともdllに奇妙な問題がありますか?