在项目中使用code first开发模式,碰到测试数据丢失的问题,Ef 我用的是自动迁移。
(
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;//如果注释掉该行,再在模型中添加字段,就会出错
)
问题是:
多人开发的时候,A(组员)修改模型的字段,能够自动映射到数据库的表,
B(组员)也修改该模型字段,同样映射到数据库表,出现的诡异的问题是:B修该的会删除A添加的字段,请问如何解决code first 这种开放模式下的多人开发的问题,即数据的丢失问题?
很简单,A 开发围绕(1,2,3)表,B 开发围绕(4,5,6,7)表,A,B的交互通过接口来表示,而不是建立在(1,2,3,4,5,6,7)表上。
实际开发中是这样,分工明确,但是如果出现B组员操作 1表对应的实体(在没有获取最新代码的情况下,或A未提交修改后的代码的情况下)就会出现表的字段被删除的危险,
请问如何避免这种情况?
@八九: 你想要的其实就是我们常用的源代码管理,或者说叫着数据同步,比如SVN,Microsoft Sync等。
http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx
EF6 中有提到这个新的特点,'Multi-Tenant Migrations'.
如果你不愿意尝试的话,你可以要求开发人员在运行修改数据库架构的代码前必须先通过svn update\commit 源代码。
@Launcher:
请问下在多人参与的开发项目中 使用code first 这种开发模式,可取吗?我怎么感觉这种开发模式,在多人开发团队中不够成熟呢
@八九: 不可取,尤其是大家水平都不高的情况下。
@Launcher:
请问Database First、Model First、Code First 这三种开发模式,哪种开发模式在多人开发团队中可取呢,或比较成熟呢?
@八九: Database First.