【问题标题】:Features - NHibernate versus Writing Custom Object-Relational Mapper特性 - NHibernate 与编写自定义对象关系映射器
【发布时间】:2009-03-16 18:28:02
【问题描述】:

我正在寻找您将在自定义对象关系映射器 (ORM) 中实现的所有功能的列表,以满足 NHibernate 的所有功能。

开始:

  1. 通过不同的驱动程序和方言实现数据库可移植性
  2. 缓存
  3. 延迟加载
  4. 自定义 SQL
  5. 查询接口 - LINQ、Criteria、QBE(按示例查询)
  6. 基本和高级映射功能(例如鉴别器列、示例
  7. 支持事务和工作单元
  8. Multi-Criteria
  9. Multi-Query
  10. 批处理
  11. 补充/覆盖功能的挂钩

在此处查看另一个列表:来自 Ayende Rahien 的 25 Reasons Not To Write Your Own Object Relational Mapper

【问题讨论】:

    标签: .net nhibernate orm


    【解决方案1】:

    Ayende 在此处发布了几乎完整的重要 ORM 功能列表: http://ayende.com/Blog/archive/2006/05/12/25ReasonsNotToWriteYourOwnObjectRelationalMapper.aspx

    您的列表中缺少的一项重要功能是 IsDirty/State Change 检查。 Identity Map 是另一个重要的功能,它支持许多其他功能,例如 IsDirty。

    【讨论】:

    • 那么您会说 Identity Map 是该功能,而 IsDirty 是该功能的一个方面吗?还是您会将其列为 2 个单独的项目?
    • 很难说。 Identity Map 本身就是一个特性,但它经常被用作其他特性的核心,例如脏跟踪、缓存和工作单元。这些特性可以在没有身份映射的情况下实现,而身份映射可以在没有这些特性的情况下实现。但是,它们往往齐头并进。
    【解决方案2】:

    多查询,

    批处理。

    最重要的是:钩子可以补充/覆盖任何以你没想到/想要/感觉的方式工作的功能。

    最后一部分是 NHibernate 擅长的地方。

    【讨论】:

      【解决方案3】:

      某种查询接口(如 linq 或 Criteria)

      某种映射功能

      支持事务和工作单元

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多