代码之家  ›  专栏  ›  技术社区  ›  nlaq

支持完全迁移的.NET活动记录窗体

  •  4
  • nlaq  · 技术社区  · 15 年前

    我正在寻找一个使用活动记录模式的.NET或/M,它允许开发人员定义迁移,该迁移将在代码中更新数据库方案。我看到ActiveRecord在 http://www.castleproject.org/activerecord/index.html -但是,它的记录很差(有非常过时的样品),并且没有生产就绪的版本可用。我的目标DBMS是MSSQLE2008;但最好生成的SQL与MSSQL2000兼容。

    我不想使用nhibernate,因为我知道它需要一个XML文件来维护方案,并且不支持迁移。对于.NET反射和属性,库在这种情况下使用XML是不可接受的,并且感觉不太适合平台的一般使用。

    我主要关心的是维护databsae方案。因为这是针对ASP.NET MVC项目的,所以必须能够在环境之间保持数据库方案的同步。事实上,考虑到.NET的流行,我找不到具有内置迁移支持的单个或/M,这是令人惊讶的——正如我之前所说,自定义属性和反射使这在代码中很容易实现。

    我希望避免在实体类之外定义没有外部配置文件(ala ado.net实体框架)的实体。没有理由说明或/m无法通过对关联属性使用自定义属性来推断列名。

    不管怎样,有什么建议吗?我所要求的可能是不存在的;如果是这样,您是否有使用其他.NET或/MS的第一手帐户可以共享?

    2 回复  |  直到 7 年前
        1
  •  4
  •   tinonetic    8 年前

    我宁愿不使用NHibernate,因为 我知道它需要一个XML文件 维持计划

    你查过了吗 Fluent-NHibernate ,它允许您使用流畅的.NET API定义模型。

    站点示例:

    public class CatMap : ClassMap<Cat>
    {
      public CatMap()
      {
        Id(x => x.Id);
        Map(x => x.Name)
          .Length(16)
          .Not.Nullable();
        Map(x => x.Sex);
        References(x => x.Mate);
        HasMany(x => x.Kittens);
      }
    }
    

    (Fluent NHibernate也支持 auto-mappings (根据惯例)

    NHibernate也支持 Schema Creation and Updating . 模式创建非常有效,我以前在Web项目和内存单元测试中使用过很多次。尚未使用更新功能,因为我一直在使用 Migrator.NET 一段时间来处理这个问题。

        2
  •  0
  •   John Moffitt    7 年前

    亚音速(链接已删除)提供 Migration support 而且工作得很好。