找不到方法:'System.Linq.IQueryable`1 <!-!0-> NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'

时间:2019-03-05 05:03:46

标签: c# linq nhibernate iqueryable

将NHibernate从4.1.2升级到5.2.3,将Target Framework从4.5升级到4.6.2(与NH 5.x兼容)时,我遇到了问题。当我使用LINQ执行查询时(以前效果很好),就会发生问题:

service.Query.Where(p => p.Approved).FirstOrDefault();

这是详细消息例外:

  

未找到方法:“ System.Linq.IQueryable`1 NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)”。

我注意到当我调用service.Query时,系统将引发异常:

  

“ service.Query”引发了类型为“ System.MissingMethodException”的异常

我想念什么?

1 个答案:

答案 0 :(得分:3)

您的应用仍在尝试调用NHibernate 5中已删除的旧扩展Query方法。Query是自NHibernate 5起的IStatelessSession/ISession接口方法。

您看到的异常意味着您的应用程序没有正确地用新的NHibernate dll重新编译。确保所有项目都引用新的dll(或nuget包),并且没有编译错误(可能的情况-您在升级之前运行了上次成功的构建,但使用了更新的dll)。