我看到很多使用Linq to NH的例子:
ISession session = getSession();
var query = from conference in session.Linq<Conference>()
但在我的代码中,ISession上没有.Linq。
以下使用不够?
using NHibernate.Linq;
答案 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,具有更多功能。