NHibernate 3.1:调用LambdaExtensions时出现MissingMethodException

时间:2011-03-31 12:34:34

标签: nhibernate missingmethodexception nhlambdaextensions

自从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问题?

1 个答案:

答案 0 :(得分:1)

如果您使用的是基于NH 2.1组件构建的Googlecode旧式NH Lambda Extensions,您有2个选项; - 你可以降级到3.0,或者你可以下载源代码并针对后面的二进制文件进行编译。

如果你不想这样做,我有一份针对NH3.1构建的NHlambdaextensions副本,其中包括所有传递给你的一些原始测试