我理解不能自动刷新.dbml(Linq2Sql),. edmx(Linq2Entities)或.hbm.xml(NHibernate)的原因。在每个ORM解决方案中,如果数据库中有更改,则需要更新这些文件。 如果您100%确定它不会破坏任何内容,有没有办法自动刷新这些文件?
我对RoR中的迁移非常熟悉。 .NET世界中是否有依赖迁移工具?
一般情况下,如何保持数据库设计的灵活性并且不要一次又一次地手动重新创建这些映射文件?
如果此问题重复,请提供链接。我找不到一个。
答案 0 :(得分:1)
我不确定您对更新EDMX的犹豫是什么。继续从数据库中更新您的模型。机会非常好,它会起作用。但如果没有,只需从源代码控制中获取旧版本,然后手动进行更改。
另一方面,使用LINQ to SQL,它更难,因为没有更新功能。您必须从模型中删除已更改的对象,重新添加它们,然后手动重新应用所做的任何更改。同样,源控制在这里至关重要;你想要从以前的版本中区分XML文件,以确保你没有忘记任何事情。
我不确定您对迁移的问题意味着什么。是的,有一个工具(RikMigrations),它与Rails中的迁移类似。但是,迁移当然会改变您的数据库元数据。它们不会更改您的ORM映射。无论是在Rails还是在.NET中,都可以在其他地方完成。