3

我理解不自动刷新 .dbml (Linq2Sql)、.edmx (Linq2Entities) 或 .hbm.xml (NHibernate) 的原因。在每个 ORM 解决方案中,如果您在数据库中有更改,则需要更新这些文件。如果你 100% 确定它不会破坏任何东西,有没有办法自动刷新这些文件?

我相当熟悉 RoR 中的迁移。.NET 世界中是否有可靠的迁移工具?

一般来说,您如何保持数据库设计的敏捷性,而不是一次又一次地手动重新创建这些映射文件?

如果此问题重复,请提供链接。我找不到一个。

4

1 回答 1

1

我不确定您对更新 EDMX 的犹豫是什么。继续并从数据库中更新您的模型。很有可能它会起作用。但如果没有,只需从源代码管理中获取旧版本,然后手动进行更改。

另一方面,使用 LINQ to SQL 就更难了,因为没有更新功能。您必须从模型中删除更改的对象,重新添加它们,然后手动重新应用您所做的任何更改。同样,源代码控制在这里至关重要。您需要将 XML 文件与以前的版本进行比较,以确保您没有忘记任何内容。

我不确定您关于迁移的问题是什么意思。是的,有一个工具 (RikMigrations),它的作用与 Rails 中的迁移类似。但是迁移当然会改变你的数据库元数据。它们不会更改您的 ORM 映射。这是在其他地方完成的,在 Rails 和 .NET 中都是如此。

于 2009-02-05T17:33:44.507 回答