2012-09-07 79 views
1

我看到使用LINQ to NH像这样的例子很多:session.Linq在哪里?

ISession session = getSession(); 
    var query = from conference in session.Linq<Conference>() 

但在我的代码没有.Linq上的Isession。

是以下使用不够?

using NHibernate.Linq; 

回答

4

您正在导入正确的命名空间,但在ISession接口上使用了错误的方法。而不是ISession.Linq<T>(),请使用ISession.Query<T>()

ISession session = getSession(); 
var query = from conference in session.Query<Conference>() 

ISession.Linq<T>()是的Linq 2 NHibernate的一部分,一个单独的项目,这是有点治标不治本。它基于Criteria API。现在已经过时了。

新的NHibernate Linq提供程序现在是主NHibernate程序集的一部分(截至NH 3.0)。它基于HQL并具有更多功能。

+0

谢谢!我怀疑.Linq已经变成了别的东西,.Query或.QueryOver,但它并不清楚。 –