自从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问题?
答案 0 :(得分:1)
如果您使用的是基于NH 2.1组件构建的Googlecode旧式NH Lambda Extensions,您有2个选项; - 你可以降级到3.0,或者你可以下载源代码并针对后面的二进制文件进行编译。
如果你不想这样做,我有一份针对NH3.1构建的NHlambdaextensions副本,其中包括所有传递给你的一些原始测试