【问题标题】:Getting Started with Fluent NHibernateFluent NHibernate 入门
【发布时间】:2010-04-21 15:15:27
【问题描述】:

我正在尝试使用 Fluent NHibernate,但我有几个问题。我发现缺少文档。

  1. 我了解 Fluent NHibernate / NHibernate 允许您自动生成数据库模式。人们通常只对测试/开发数据库这样做吗?或者对于生产数据库可以这样做吗?如果生产环境没问题,如何确保不会在每次运行应用时都丢失生产数据?

  2. 一旦数据库架构已经创建,并且您拥有生产数据,当新的表/列/等。需要添加到测试和/或生产数据库,人们是否允许 NHibernate 这样做,还是应该手动完成?

  3. 是否有任何关于 Fluent NHibernate 的非常好的文档? (请不要将我指向 wiki,因为在跟随“您的第一个项目”代码自己构建它时,我遇到了运行时错误,因为他们忘记告诉您添加参考。不酷。)

谢谢, 安迪

【问题讨论】:

    标签: fluent-nhibernate


    【解决方案1】:

    我已经使用 Fluent NHibernate Automapping 几个月了。我绝不是专家,但可以解决您的问题...

    FNH Automapping 确实从 POCO 类创建 DB 模式,包括其他对象的列表(这是我首先选择 NHibernate 的原因)。

    当您更改架构时,您必须重新运行自动映射,这确实会删除整个数据库,很遗憾。就我而言,这不是什么大问题,因为我正在导入现有的二进制数据文件,所以每次架构更改时我都必须重新导入我的数据。我读过 NHibernate 提供了一些数据迁移支持,但没有这方面的经验。 (顺便说一句,Subsonic 进行数据迁移,但它的自动映射功能还很初级 - 至少在我几个月前评估它时是这样)

    FNH 文档是我最讨厌的问题之一——他们甚至没有在方法名称等方面添加 Intellisense 帮助。(但是当你指出这一点时,他们会非常生气——问我怎么知道的!)我做了一个尽可能对 wiki 进行几处编辑,但在那里可以做的还有很多。最好的方法是从一个工作示例开始(即 this one from Nikola Malovic,如果(何时!)您遇到麻烦,请将问题发布到 support form。总的来说,我发现 FNH 社区非常有帮助,并且能够克服我的所有困难。他们还修复了我发现的几个错误。

    总的来说,使用 FNH 对我的项目来说是一个巨大的胜利 - 强烈推荐!

    【讨论】:

    • 感谢您的提示。我现在放弃 Fluent NHibernate - 太令人沮丧了,据我所知,EF 已经达到了相当成熟的水平。
    • 很抱歉听到这个消息。一开始我也觉得很沮丧,但现在我很高兴我坚持下来了。几个月前我简要地研究了 EF,但口碑不好,我无法确定它是否进行了自动映射。也许 VS 2010 的发布将解决人们报告的主要问题。
    【解决方案2】:

    我不使用 Fluent,但我可以帮助使用经典的 NHibernate。

    1. 是的,非常推荐创建模式用于生产用途(模式导出)。当你这样做的时候,这取决于你。例如,您可以通过安装程序创建数据库。您不应删除现有数据库,但这是您的应用程序的决定。

    2. 我不明白这个问题。您的意思是您需要将现有数据库升级到新的数据库模式吗?不幸的是,这是您需要自己实现的。 NH 对此无能为力,因为它对您的数据和您所做的更改非常具体。还有一个Schema Update之类的,不推荐用于生产。

    3. 我不会使用 Fluent,所以在这里帮不上忙。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2011-02-27
      相关资源
      最近更新 更多