使用codefirst EF4进行数据库重构的最佳做法是什么?
我很想知道当RecreateDatabaseIfModelChanges选项不可行时人们如何更改类和数据库。需要进行数据迁移。
目前,Microsoft有一个解决方案,首先使用模型:
有没有人有一个很好的代码策略?
答案 0 :(得分:1)
我正在研究数据库上下文初始化程序,如果模型和数据库模式不同步,它将通知网站管理员,并显示不同的内容。这对于喜欢完全控制代码优先模型和数据库模式的开发人员非常有用。看看:
答案 1 :(得分:1)
EF团队一直致力于解决此问题的EF迁移功能。
斯科特古德最近在欧洲巡回演讲时表示,他们应该尽快发布此功能。我屏住呼吸。激动人心的更新:
答案 2 :(得分:1)
在我的CodeFirst应用程序中,本地版本有一个表示不在生产中的app.config标志。当我不在制作中时,它会完全核实并重新创建数据库。由于我的生产数据库用户没有删除数据库的权限,即使我的web.config转换以某种方式被遗漏(因此EF尝试重新创建数据库),我的生产数据库也不会被删除,而是抛出异常。
我的工作流程如下:
步骤#2基于最新的数据模型自动创建一个新的,干净的数据库,所以我总是知道我有一个最新的数据库,它没有来自可能还没有生产就绪的开发工作的工件。