未找到方法:'System.Linq.IQueryable`1<!!0> NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'
Method not found: 'System.Linq.IQueryable`1<!!0> NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'
我在将 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();
这是详细消息异常:
Method not found: 'System.Linq.IQueryable`1 NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'.
我注意到当我调用service.Query时,系统会抛出异常:
'service.Query' threw an exception of type 'System.MissingMethodException'
我错过了什么?
您的应用仍在尝试调用在 NHibernate 5 中删除的旧扩展 Query
方法。Query
自 NHibernate 5 以来是 IStatelessSession/ISession
接口方法。
您看到的异常表示您的应用程序未使用新的 NHibernate dll 正确地重新编译。确保您所有的项目都引用了新的 dll(或 nuget 包)并且您没有编译错误(可能的情况 - 您 运行 在升级之前最后一次成功构建但使用了更新的 dll)。
我在将 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();
这是详细消息异常:
Method not found: 'System.Linq.IQueryable`1 NHibernate.Linq.LinqExtensionMethods.Query(NHibernate.IStatelessSession)'.
我注意到当我调用service.Query时,系统会抛出异常:
'service.Query' threw an exception of type 'System.MissingMethodException'
我错过了什么?
您的应用仍在尝试调用在 NHibernate 5 中删除的旧扩展 Query
方法。Query
自 NHibernate 5 以来是 IStatelessSession/ISession
接口方法。
您看到的异常表示您的应用程序未使用新的 NHibernate dll 正确地重新编译。确保您所有的项目都引用了新的 dll(或 nuget 包)并且您没有编译错误(可能的情况 - 您 运行 在升级之前最后一次成功构建但使用了更新的 dll)。