NHibernate Linq提供者问题

csi*_*izo 3 nhibernate linq-to-nhibernate

任何人都可以回答我的不同之处

Session.Query
Session.Linq和
Session.QueryOver

我真正感兴趣的是:
未来版本将支持哪些内容.
我应该在干净的项目中开始使用什么.

请告诉我你对这三个人的看法......

谢谢你,佐尔坦

Kev*_*haw 5

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

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

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

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