使用LINQ和NHibernate

rya*_*zec 7 c# linq nhibernate

好的,我认为我的所有配置都正确,现在我只是尝试从数据库中选择一些数据进行选择查询.现在我正在使用NHibernate 3.0,我默认支持LINQ(或者至少是链接的一个很好的部分.现在我找到的每个LINQ示例都有这个代码

session.Linq<User>()
Run Code Online (Sandbox Code Playgroud)

但我为我的生活找不到如何或在哪里设置会话.这是正确的,为什么在3.0中进行,如果是这样,我如何设置会话(我需要什么使用,类,方法等...)?如果没有,使用LINQ和NHibernate 3.0的正确方法是什么?

更新:

现在我有以下代码:

var configuration = new Configuration();
configuration.Configure();
configuration.AddAssembly(typeof(Tag).Assembly);
var sessionFactory = configuration.BuildSessionFactory();
var session = sessionFactory.GetCurrentSession();
Run Code Online (Sandbox Code Playgroud)

但我得到一个编译错误,说NHibernate.ISession没有Linq的定义.我有以下用法:

using System.Collections.Generic;
using System.Web.Mvc;
using MyProject.Models;
using MyProject.ViewModels.Desktop;
using NHibernate.Cfg;
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

cod*_*zen 8

您需要导入名称空间:

using NHibernate.Linq;
Run Code Online (Sandbox Code Playgroud)

此外,它现在:

session.Query<TEntity>();
Run Code Online (Sandbox Code Playgroud)

代替:

// Deprecated
session.Linq<TEntity>();
Run Code Online (Sandbox Code Playgroud)