3

谁能回答我有什么区别

Session.Query
Session.Linq 和
Session.QueryOver

我真正感兴趣的是:
未来版本将支持什么。
我应该在一个干净的项目中开始使用什么。

请谈谈你对这三个方面的看法...

谢谢,佐尔坦

4

1 回答 1

5

Session.Query 是当您想使用 NHibernate 3.0 中新的和大大改进的 linq 提供程序时使用的类。如果您正在使用 linq 并且正在开始一个新项目,那么这是要使用的类。

如果您要使用旧的 linq 提供程序,Session.Linq 是要使用的类。我会说您只会将此类与较旧的代码库一起使用。较旧的 linq 提供程序实际上是 Criteria API 的包装器,虽然对于更简单的查询很好,但众所周知,一旦事情变得更加苛刻,它就会受到限制。

Session.QueryOver 是 NHibernate 的 Criteria API 的包装器。如果您已经精通 Criteria API,那么这是一个非常平易近人的界面。它消除了大部分字符串,用 lambda 表达式替换它们。这是一个非常流畅的界面。语法类似于 linq,但这不是linq 提供程序。

在这个时候,我会说你会想要使用 Query 和 QueryOver 接口。

于 2010-08-19T01:22:08.703 回答