gpt4 book ai didi

c# - 具有完整迁移支持的 .net Active Record ORM

转载 作者:行者123 更新时间:2023-11-30 12:18:43 24 4
gpt4 key购买 nike

我正在寻找一个使用 Active Record 模式并允许开发人员定义将在代码中更新数据库方案的迁移的 .net OR/M。我在 http://www.castleproject.org/activerecord/index.html 看到了 ActiveRecord - 但它的文档很少(样本非常过时)并且没有可用的生产就绪版本。我的目标 DBMS 是 MSSQLE 2008;但生成的 SQL 最好与 MSSQL 2000 兼容。

我宁愿不使用 nHibernate,因为我知道它需要一个 XML 文件来维护方案并且不支持迁移。有了 .net 反射和属性,库在这种情况下使用 XML 是 Not Acceptable ,并且感觉不太适合平台的一般用途。

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

能够在我的实体类之外没有外部配置文件(ala ADO.NET Entity Framework )的情况下定义我的实体也是我想避免的事情。 OR/M 没有理由不能通过对关联属性使用自定义属性来推断列名。

无论如何,有什么建议吗?我所要求的也许是不存在的;如果有,是否有您可以分享的使用其他 .net OR/M 的第一手资料?

最佳答案

I would rather not use nHibernate, as I understand it requires an XML file to maintain the scheme

你看过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 .模式创建是一种享受,我之前在网络项目和内存单元测试中多次使用过它。还没有使用更新功能,因为我一直在使用 Migrator.NET有一段时间可以解决这个问题。

关于c# - 具有完整迁移支持的 .net Active Record ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com