Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将LINQ与NHibernate一起使用_C#_Linq_Nhibernate - Fatal编程技术网

C# 将LINQ与NHibernate一起使用

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;

好的,我想我已经准备好了所有的配置,现在我正在尝试从数据库中进行选择查询,选择一些数据。现在我使用的是NHibernate3.0,我认为它默认支持LINQ(或者至少是链接的一部分)

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>();