session.Linq在哪里?

时间:2012-09-07 07:20:11

标签: nhibernate

我看到很多使用Linq to NH的例子:

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

但在我的代码中,ISession上没有.Linq。

以下使用不够?

using NHibernate.Linq;

1 个答案:

答案 0 :(得分: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,具有更多功能。