【问题标题】:Querying NHibernate查询 NHibernate
【发布时间】:2010-02-04 04:47:37
【问题描述】:

我们使用 NHibernate 作为项目的 ORM,并且我们只有数据库只读功能。应用程序不会更新、删除或插入任何记录到数据库中,它只是在数据库中查询记录。

我的问题是在上述场景中使用 NHibernate 查询数据库的最佳方法是什么。

【问题讨论】:

    标签: sql-server nhibernate


    【解决方案1】:

    你确定你真的需要 ORM 吗?

    无论如何,使用 NHibernate 查询数据库有 3 个常用选项:

    1. HQL
    2. Criteria API
    3. Linq.

    最简单的是3,最强的是1。

    但我不太了解您的问题的性质,因为 NHiebrnate 中的查询 API 不是相互排斥的,而是它们相互叠加。

    因此您可以根据情况使用其中任何一个

    • 对于动态查询 - 最好是 Criteria API。
    • 用于复杂且永不改变的 - HQL。
    • 为了方便快捷 - Linq。

    【讨论】:

      【解决方案2】:

      由于它是只读的,您可能没有太多用处将查询结果作为映射对象检索。结果集类型返回值可能更有用。为此使用session.createQuery,然后使用query.list 列表的每个元素都是一个对象数组。每个数组元素对应一个选择列。

      【讨论】:

        猜你喜欢
        • 2011-02-27
        • 2020-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        相关资源
        最近更新 更多