【问题标题】:What's the most productive way to do NHibernate mapping?进行 NHibernate 映射最有效的方法是什么?
【发布时间】:2009-10-20 15:52:37
【问题描述】:

我知道在 Java 中进行休眠映射的注释,现在正在寻找在 C# 和 NHibernate 中执行相同操作的类似方法。我发现有几种方法

  • 在 xml 文件中进行映射
  • NHibernate.Mapping.Attributes (NHMA)
  • 流利
  • 还有吗??

我尝试了 NHMA,发现它对我来说有一些障碍...

我不想让你讨论,将模型映射到 NHibernate 的最佳方法是什么,但我正在互联网上寻找一个很好的比较。

你知道这样的网站吗?如果我选择上面列出的“框架”之一,需要考虑哪些事实?我正在考虑诸如“NH-Developers 是否正式支持该项目?”、“是否有可以在 xml-mapping 中映射但不能在 fluent/NHMA/etc 中映射的模型......?”

你有什么推荐的? 为什么?

【问题讨论】:

    标签: nhibernate fluent-nhibernate nhibernate-mapping mapping


    【解决方案1】:

    Fluent NHibnernate auto mapping 或代码生成(CodeSmith、MyGeneration、T4 等)是创建映射文件最有效的方法。我不喜欢属性方法,因为我喜欢保持我的 POCO 简单。

    【讨论】:

    • +1 必须流利地保持 POCO 的清洁,并避免在更改对象时出现令人讨厌的 XML 问题。
    【解决方案2】:

    如果您不介意属性,另一个选项是Castle ActiveRecord

    Here's an article 这可能会帮助您做出决定。

    【讨论】:

    • 感谢您的帖子。谢谢你的文章。我不介意模型中的属性,但我不希望每个实体都从 ActiveRecord 框架中继承一个基类。而且我不希望我的实体负责自己的存储。更像是一个 DAO ;)
    • 从 ActiveRecordBase 继承完全是可选的。作为 DAO,您可以使用 ActiveRecordMediator 或 Ayende 的 IRepository 之类的包装器:github.com/ayende/rhino-tools/blob/master/commons/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多