首页新闻找找看学习计划

EF怎么处理增加数据库字段的问题

0
悬赏园豆:5 [已解决问题] 解决于 2020-05-25 14:10

当我们用EF用数据库优先的模式生成 .edmx后, 如果数据库又增加了字段,这个时候,如果用EF操作增加了字段的表,就会报错,但是在生产环境,有不能随意的重新从数据库生成 .edmx.

请问有什么好的处理方法没有?

泰德的主页 泰德 | 初学一级 | 园豆:3
提问于:2020-05-19 03:31
< >
分享
最佳答案
0

生产环境的数据库结构应该和开发环境的同步吧

收获园豆:5
会长 | 大侠五级 |园豆:7443 | 2020-05-19 09:43

数据库结构同步没问题,关键是,如果重新生成DBContext,就意味着生产环境的application要停下来。有不有什么办法可以在添加数据库字段后,不用重新生成或更新DBContext,application也不会报错的办法?

泰德 | 园豆:3 (初学一级) | 2020-05-20 00:15

@泰德: 数据库变了,代码肯定也得跟着变吧,代码变了肯定要重新部署呀。我暂时想不到啥办法

会长 | 园豆:7443 (大侠五级) | 2020-05-20 09:12

@会长:因为不同的application用同一个数据库,一个application需要增加字段,其它application并不需要这个字段,所以如果有办法不需要更新Context是最好

泰德 | 园豆:3 (初学一级) | 2020-05-20 11:30

@泰德: 还有这种操作?就算增加了字段,按个不需要这个字段的app也不会错吧

会长 | 园豆:7443 (大侠五级) | 2020-05-20 11:40
其他回答(4)
0

数据库服务器不是应该搞一个开发环境,一个测试环境,一个生产环境的吗?

Tom.汤 | 园豆:1953 (小虾三级) | 2020-05-19 07:59
0

edmx其实是一些文件组成的,实在不能重新生成,就尝试改文件吧

L`G | 园豆:204 (菜鸟二级) | 2020-05-19 08:33
0

微软主推的是CodeFrist
如果担心自己学习速度 或者习惯于DBfirst 可以考虑使用EFPowerTools 这个扩展包
可以对现有数据库结构进行解析 生成model 以及表关系 方便向CodeFirst 过度和学习。

https://ask.csdn.net/questions/244796

按上面说的试一下吧。

猝不及防 | 园豆:2003 (老鸟四级) | 2020-05-19 09:05
0

可以用 migration 生成sql
在生产环境执行sql

戎"码"一生 | 园豆:30 (初学一级) | 2020-05-19 13:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册