linq查询的问题
我正在尝试使用 linq to NHibernate (使用 Fluent NHibernate),但我在 linq 查询方面遇到问题。每次我尝试执行它时,我都会收到以下消息:
“方法'get_IsReadOnlyInitialized' 类型 'NHibernate.Linq.Util.DetachedCriteriaAdapter' 来自程序集“NHibernate.Linq”, 版本=1.1.0.1001,文化=中立, PublicKeyToken=null' 没有 实施。”
有人知道如何解决这个问题吗?我尝试使用解决方案形式 此页面 包含模型上下文,但没有帮助。
这是代码:
using(var session = NHibernateHelper.OpenSession())
{
var informations = (from i in session<Information>() where i.Text=="some text" select i).ToList();
}
如果我不使用 where 部分,一切都很好但如果我使用它,我认为问题出在 NHibernate.Linq.dll 中。
I'm trying to use linq to NHibernate (with Fluent NHibernate) but I have problems with linq query. Everytime I try to execute it I get this message :
"Method 'get_IsReadOnlyInitialized'
in type
'NHibernate.Linq.Util.DetachedCriteriaAdapter'
from assembly 'NHibernate.Linq,
Version=1.1.0.1001, Culture=neutral,
PublicKeyToken=null' does not have an
implementation."
Does anybody know how to fix this problem? I tried with solution form this page with model context but it didn't help.
This is the code:
using(var session = NHibernateHelper.OpenSession())
{
var informations = (from i in session<Information>() where i.Text=="some text" select i).ToList();
}
Everything is fine if I don't use the where part but if I use it I get this error. I think that the problem is in NHibernate.Linq.dll
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该不将 NHibernate.Linq.dll 与 NHibernate 3.0 一起使用! NHibernate 3.0 包含了 Linq(一个比旧扩展 dll 更好的版本),您只需添加()。
using NHibernate.Linq;
并使用session.Query()
code> 而不是 session.LinqYou should not use NHibernate.Linq.dll with NHibernate 3.0! NHibernate 3.0 has Linq included (a by far better version than the old extension dll), you just need to add
using NHibernate.Linq;
and usesession.Query<T>()
instead ofsession.Linq<T>()
.据我所知,您不是在比较,而是分配文本。
不应该是 == 而不是 =:
as far as I can see you are not comparing, but assigning the Text.
Should it not be == in stead of =: