Linq Nhibernate 3&;林克

Linq Nhibernate 3&;林克,linq,nhibernate,Linq,Nhibernate,我正在将一些代码从NHibernate2.x转换为3.0。以前,我使用LINQ插件来获得LINQ支持。我的理解是,在3.0中,它作为一个一流的特性被引入。所以我的问题是,我以前有这样一个问题: return new List<T>(session.Linq<T>().Where(where)); 返回新列表(session.Linq().Where(Where)); 使用新语法时会是什么样子?我浏览了nhib 3文档和教程,没有看到任何关于linq的东西,所以我找不到

我正在将一些代码从NHibernate2.x转换为3.0。以前,我使用LINQ插件来获得LINQ支持。我的理解是,在3.0中,它作为一个一流的特性被引入。所以我的问题是,我以前有这样一个问题:

return new List<T>(session.Linq<T>().Where(where));
返回新列表(session.Linq().Where(Where));

使用新语法时会是什么样子?我浏览了nhib 3文档和教程,没有看到任何关于linq的东西,所以我找不到一个可以在后面构建模式的示例

在使用Linq的NHibernate 3中,您可以执行以下操作:

from u in session.Query<User>()
where u.Username == username
select u
会话中u的
查询()
其中u.Username==用户名
选择u

session.Query()。其中(u=>u.Username==Username)
不确定这是否是你要找的


编辑:
Query
是一种扩展方法。不要忘记使用NHibernate.Linq添加
,以便能够使用它。

没有新语法。林克还是林克。旧提供程序中名为Linq的方法在新提供程序中名为Query


您可以使用enumerable.ToList()代替新列表(enumerable),以防止使用单独的sql查询加载列表中的每个对象。

我在会话对象上没有看到任何.query。我是否缺少一个using或其他什么东西?为什么不改为编写
return session.Linq().Where(Where).ToList()
session.Query<User>().Where(u => u.Username == username)