C# 将LINQ与NHibernate一起使用
好的,我想我已经准备好了所有的配置,现在我正在尝试从数据库中进行选择查询,选择一些数据。现在我使用的是NHibernate3.0,我认为它默认支持LINQ(或者至少是链接的一部分)C# 将LINQ与NHibernate一起使用,c#,linq,nhibernate,C#,Linq,Nhibernate,好的,我想我已经准备好了所有的配置,现在我正在尝试从数据库中进行选择查询,选择一些数据。现在我使用的是NHibernate3.0,我认为它默认支持LINQ(或者至少是链接的一部分) session.Linq<User>() 但是我得到一个编译器错误,说NHibernate.ISession没有Linq的定义。我有以下用法: using System.Collections.Generic; using System.Web.Mvc; using MyProject.Models;
session.Linq<User>()
但是我得到一个编译器错误,说NHibernate.ISession没有Linq的定义。我有以下用法:
using System.Collections.Generic;
using System.Web.Mvc;
using MyProject.Models;
using MyProject.ViewModels.Desktop;
using NHibernate.Cfg;
我遗漏了什么吗?您从NHibernate
SessionFactory.CreateSession()
方法获得了一个会话。一旦有了会话,您就可以使用HQL查询、NH查询API或LINQ来访问数据。您需要导入名称空间:
using NHibernate.Linq;
此外,现在:
session.Query<TEntity>();
session.Query();
而不是:
// Deprecated
session.Linq<TEntity>();
//已弃用
session.Linq();
我相信这是NHibernate 3中的session.Query()
,因为LINQ提供程序被引入到核心组件中。NHibernate wiki是一个很好的入门资源-是的,我知道我需要使用.Query而不是.LINQ for NHibernate 3,谢谢
// Deprecated
session.Linq<TEntity>();