找不到方法:'System.Linq.IQueryable`1 NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'

问题描述 投票:0回答:1

将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'类型的异常

我错过了什么?

c# linq nhibernate iqueryable
1个回答
3
投票

您的应用程序仍在尝试调用在NHibernate 5中删除的旧扩展Query方法。自NHibernate 5以来,QueryIStatelessSession/ISession接口方法。

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

© www.soinside.com 2019 - 2024. All rights reserved.