首页 新闻 会员 周边

在项目中使用code first开发模式

0
悬赏园豆:50 [已解决问题] 解决于 2013-08-05 16:38

在项目中使用code first开发模式,碰到测试数据丢失的问题,Ef 我用的是自动迁移。

AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;//如果注释掉该行,再在模型中添加字段,就会出错

问题是:

多人开发的时候,A(组员)修改模型的字段,能够自动映射到数据库的表,

B(组员)也修改该模型字段,同样映射到数据库表,出现的诡异的问题是:B修该的会删除A添加的字段,请问如何解决code first 这种开放模式下的多人开发的问题,即数据的丢失问题?

八九的主页 八九 | 初学一级 | 园豆:159
提问于:2013-08-05 15:50
< >
分享
最佳答案
0

很简单,A 开发围绕(1,2,3)表,B 开发围绕(4,5,6,7)表,A,B的交互通过接口来表示,而不是建立在(1,2,3,4,5,6,7)表上。

收获园豆:50
Launcher | 高人七级 |园豆:45045 | 2013-08-05 15:53

实际开发中是这样,分工明确,但是如果出现B组员操作 1表对应的实体(在没有获取最新代码的情况下,或A未提交修改后的代码的情况下)就会出现表的字段被删除的危险,

八九 | 园豆:159 (初学一级) | 2013-08-05 16:04

请问如何避免这种情况?

八九 | 园豆:159 (初学一级) | 2013-08-05 16:05

@八九: 你想要的其实就是我们常用的源代码管理,或者说叫着数据同步,比如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 | 园豆:45045 (高人七级) | 2013-08-05 16:27

@Launcher: 

请问下在多人参与的开发项目中 使用code first 这种开发模式,可取吗?我怎么感觉这种开发模式,在多人开发团队中不够成熟呢

八九 | 园豆:159 (初学一级) | 2013-08-05 17:12

@八九: 不可取,尤其是大家水平都不高的情况下。

Launcher | 园豆:45045 (高人七级) | 2013-08-05 17:17

@Launcher: 

请问Database First、Model First、Code First 这三种开发模式,哪种开发模式在多人开发团队中可取呢,或比较成熟呢?

八九 | 园豆:159 (初学一级) | 2013-08-05 17:35

@八九: Database First.

Launcher | 园豆:45045 (高人七级) | 2013-08-05 17:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册