将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”的异常
我想念什么?
答案 0 :(得分:3)
您的应用仍在尝试调用NHibernate 5中已删除的旧扩展Query
方法。Query
是自NHibernate 5起的IStatelessSession/ISession
接口方法。
您看到的异常意味着您的应用程序没有正确地用新的NHibernate dll重新编译。确保所有项目都引用新的dll(或nuget包),并且没有编译错误(可能的情况-您在升级之前运行了上次成功的构建,但使用了更新的dll)。