【发布时间】:2009-09-30 23:10:33
【问题描述】:
我正在寻找一个使用 Active Record 模式并允许开发人员定义将在代码中更新数据库方案的迁移的 .net OR/M。我在http://www.castleproject.org/activerecord/index.html 上看到过 ActiveRecord - 但它的文档记录很差(带有非常过时的样本),并且没有可用的生产就绪版本。我的目标 DBMS 是 MSSQLE 2008;但最好生成的 SQL 将与 MSSQL 2000 兼容。
我宁愿不使用 nHibernate,因为我知道它需要一个 XML 文件来维护方案并且不支持迁移。使用 .net 反射和属性,库在这种情况下对 XML 的使用是不可接受的,并且对于平台的一般使用来说感觉不是很原生。
我主要关心的是维护数据库方案。由于这是针对 ASP.NET MVC 项目的,因此必须能够在环境之间保持数据库方案的同步。考虑到 .net 的流行,我找不到具有内置迁移支持的单个 OR/M 的事实令人惊讶 - 正如我之前所说的,自定义属性和反射使这很容易在代码中完成。
能够在没有外部配置文件(ala ADO.NET Entity Framework)的情况下在我的实体类之外定义我的实体也是我想要避免的事情。没有理由 OR/M 不能通过在关联属性上使用自定义属性来推断列名。
无论如何,有什么建议吗?我所要求的可能不存在;如果有,是否有任何使用其他 .net OR/M 的第一手资料可以分享?
【问题讨论】:
-
.net 没有 activeRecord 类吗?
-
这是一个 6 年前的问题......不,.net 中没有内置 Active Record。您可以获得的最接近的是 Linq2Sql(已折旧,不支持迁移)或实体框架(在过去几年中确实包括迁移支持)。但这仍然是一个外部库,而不是 .net BCL 的一部分。