【发布时间】:2010-08-19 09:22:08
【问题描述】:
谁能回答我有什么区别
会话.查询
Session.Linq 和
Session.QueryOver
我真正感兴趣的是:
未来版本将支持哪些内容。
我应该在一个干净的项目中开始使用什么。
请说说你对这三个方面的看法……
谢谢, 佐尔坦
【问题讨论】:
标签: nhibernate linq-to-nhibernate
谁能回答我有什么区别
会话.查询
Session.Linq 和
Session.QueryOver
我真正感兴趣的是:
未来版本将支持哪些内容。
我应该在一个干净的项目中开始使用什么。
请说说你对这三个方面的看法……
谢谢, 佐尔坦
【问题讨论】:
标签: nhibernate linq-to-nhibernate
Session.Query 是当您想使用 NHibernate 3.0 中新的和大大改进的 linq 提供程序时使用的类。如果您正在使用 linq 并且正在开始一个新项目,那么这是要使用的类。
Session.Linq 是使用旧 linq 提供程序时要使用的类。我会说您只会将此类与较旧的代码库一起使用。旧的 linq 提供程序实际上是 Criteria API 的包装器,虽然对于更简单的查询很好,但一旦事情变得更加苛刻,它就会受到限制。
Session.QueryOver 是 NHibernate 的 Criteria API 的包装器。如果您已经精通 Criteria API,那么这是一个非常平易近人的界面。它消除了大部分字符串,用 lambda 表达式替换它们。这是一个非常流畅的界面。语法类似于 linq,但这 不是 linq 提供程序。
此时我会说您希望使用 Query 和 QueryOver 接口。
【讨论】: