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
You 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 use session.Query<T>()
instead of session.Linq<T>()
.
as far as I can see you are not comparing, but assigning the Text.
Should it not be == in stead of =:
using(var session = NHibernateHelper.OpenSession()) {
var informations = (from i in session<Information>() where i.Text=="some text" select i).ToList();
}
来源:https://stackoverflow.com/questions/5940631/problem-with-linq-query