自从从 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 值)
我可以使用 QueryOver 而不是 Criteria 来重建查询,它会起作用,但是这样做需要挖掘很多我没有时间去做的代码。使用 NH 3.0 我没有问题。
NH 3.1 有什么变化还是我有一些奇怪的 dll 问题?