2009-02-05 82 views
3

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

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

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

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

回答

1

我不确定你对更新EDMX的犹豫是什么。只需继续并从数据库更新模型即可。机会是非常好的,它会工作。但是,如果没有,只需从源代码控制中获取旧版本,然后手动进行更改。

另一方面,使用LINQ to SQL更难,因为没有更新功能。您必须从模型中移除已更改的对象,重新添加它们,然后手动重新应用所做的任何更改。同样,源代码控制在这里至关重要;你会想要区分以前版本的XML文件,以确保你没有忘记任何东西。

我不确定你对迁移的问题意味着什么。是的,有一个工具(RikMigrations),它和Rails中的迁移类似。但是,迁移当然会改变你的数据库元数据。它们不会更改您的ORM映射。这在别处完成,无论是在Rails和.NET中。

+0

我的问题是删除并拖放edmx again..it得到有点重复 – Perpetualcoder 2009-02-05 19:23:47

相关问题