【发布时间】:2011-08-21 21:20:26
【问题描述】:
我正在尝试将 linq 用于 NHibernate(使用 Fluent NHibernate),但我遇到了 linq 查询问题。每次我尝试执行它时,我都会收到此消息:
"方法'get_IsReadOnlyInitialized' 在类型 'NHibernate.Linq.Util.DetachedCriteriaAdapter' 从程序集'NHibernate.Linq, 版本=1.1.0.1001,文化=中性, PublicKeyToken=null' 没有 实施。"
有人知道如何解决这个问题吗?我尝试使用带有模型上下文的解决方案表单this page,但它没有帮助。
这是代码:
using(var session = NHibernateHelper.OpenSession())
{
var informations = (from i in session<Information>() where i.Text=="some text" select i).ToList();
}
如果我不使用 where 部分,一切都很好,但如果我使用它,我会收到此错误。我认为问题出在 NHibernate.Linq.dll
【问题讨论】:
-
发布给您带来麻烦的代码总是一个好主意。你能做到吗?
-
这是使用 Nhibernate 2 和 NHibernate.Linq 项目吗?您是否尝试过在 Nhibernate 3 中进行相同的测试,如果我没记错的话应该内置 Linq 支持。
-
不,我有 NHibernate 3.1.0.4000、FluentNHibernate 1.2.0.712 和 NHibernate.Linq 1.0。它不是内置的。我必须独立添加它。
-
我明白了。这是集成在现有解决方案还是新项目中?您是否尝试过使用本机 Nhibernate ICriteria 重现相同的查询?如果这没有帮助,那么您能否发布相关映射,或者更好的是,发布一个包含代码和数据库架构的完整测试项目?
标签: linq nhibernate fluent-nhibernate linq-to-nhibernate