【问题标题】:Fluent NHibernate - Create Mapping for existing DatabaseFluent NHibernate - 为现有数据库创建映射
【发布时间】:2012-01-27 08:40:29
【问题描述】:

是否有生成器可以根据已经存在的数据库模式为 Fluent NHibernate 创建映射文件?

我需要为一个应用程序编写一个数据层,该应用程序使用另一个应用程序的数据库。有超过 300 个表,因此无法手动创建所有这些映射文件。

Fluent NHibernate 不允许更改任何表定义。

在运行时动态对象的解决方案是完美的,但也可以在设计时创建映射。

【问题讨论】:

  • 您可能已经知道这一点并且可能有更多更新的信息,但只是为了确保您没有错过它;如果您要使用较新版本的 NHibernate,则 fluentnhibernate 可能不是要走的路; lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2
  • 根据我个人的博客,我仍然会选择 FNH。

标签: c# .net fluent-nhibernate fluent


【解决方案1】:

如果您的数据库遵循命名约定,您可以尝试查看 FNH 的自动映射功能。

如果您发现 80% 的案例被覆盖为自动映射,则为特定案例创建特定映射。

看看这个:http://wiki.fluentnhibernate.org/Auto_mapping

【讨论】:

    【解决方案2】:

    如果您的数据库使用标准约定,请使用 AutoMapping 并为其创建与您的数据库匹配的约定。任何与这些约定不同的表都使用约定覆盖。

    请注意,如果您不打算在任何时候从映射中重新创建数据库,您可以保留所有现有的索引和可空性值,并可能在映射中忽略它们,但要准备好处理 Sql 错误,例如,您有一个对 NHibernate 可以为空的不可空数据库列。如果您想非常严格,您也可以在覆盖中定义所有索引和可空性设置。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2011-06-18
      • 2012-04-03
      • 2011-12-01
      相关资源
      最近更新 更多