c# - NHibernate3 查询与 QueryOver

标签 c# nhibernate orm

<分区>

我注意到有两种方法可以创建对 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 之上的强类型查询技术。

您可以阅读更多信息 herehere .

据我所知,linq 提供程序中的某些功能尚未实现。
我会使用 QueryOver
它允许您编写优雅的代码,并且功能齐全。

值得的东西 reading .

关于c# - NHibernate3 查询与 QueryOver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328565/

相关文章:

mysql - 应用程序外的数据库更新

c# - 是否可以仅为 MVC/Controller Action 请求执行 IHttpModule?

c# - 在代码隐藏中单击按钮执行 JavaScript

c# - 复合键不尝试保留键值

c# - 如何使用具有特定子目录的通配符扫描目录

python - 如何将查询结果映射到 sqlalchemy 中的自定义对象?

orm - 如何在MyBatis中使用带注释的动态SQL查询(如何使用selectProvider)?

java - 关闭组件内字段的乐观锁

c# - 是否可以在 .NET 中创建 "Island of Isolation"场景?

c# - 读取本地帐户ini文件