This question already has answers here:
Tradeoffs using NHibernate 3.0 QueryOver or LINQ provider
(4个答案)
4年前关闭。
我注意到有两种方法可以创建对nhibernate的良好通用友好访问。
和
每个接口(interface)的实现。
和
IQueryable实现IEnumerable,因此支持您期望的所有LINQ友好特性。我正在趋向于此实现,但是想知道是否有人知道QueryOver的目的是无法使用Query完成?
您可以阅读更多信息here和here。
据我所知,linq提供程序中的某些功能尚未实现。
我会使用
它允许您编写优美的代码,并且功能齐全。
值得reading的东西。
(4个答案)
4年前关闭。
我注意到有两种方法可以创建对nhibernate的良好通用友好访问。
IQueryOver<T, T> query= session.QueryOver<T>().Where(criteria);
和
IQueryable<T> query= session.Query<T>().Where(criteria);
每个接口(interface)的实现。
IQueryOver<TRoot, TSubType> : IQueryOver<TRoot>, IQueryOver
和
IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable
IQueryable实现IEnumerable,因此支持您期望的所有LINQ友好特性。我正在趋向于此实现,但是想知道是否有人知道QueryOver的目的是无法使用Query完成?
最佳答案
QueryOver
结合了扩展方法和lambda表达式:
IList<Cat> cats =
session.QueryOver<Cat>()
.Where(c => c.Name == "Max")
.List();
QueryOver
是一种基于NHibernate的Criteria API的强类型查询技术。您可以阅读更多信息here和here。
据我所知,linq提供程序中的某些功能尚未实现。
我会使用
QueryOver
。它允许您编写优美的代码,并且功能齐全。
值得reading的东西。
关于c# - NHibernate3 Query vs QueryOver ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5328565/
10-11 15:20