当我们用EF用数据库优先的模式生成 .edmx后, 如果数据库又增加了字段,这个时候,如果用EF操作增加了字段的表,就会报错,但是在生产环境,有不能随意的重新从数据库生成 .edmx.
请问有什么好的处理方法没有?
生产环境的数据库结构应该和开发环境的同步吧
数据库结构同步没问题,关键是,如果重新生成DBContext,就意味着生产环境的application要停下来。有不有什么办法可以在添加数据库字段后,不用重新生成或更新DBContext,application也不会报错的办法?
@泰德: 数据库变了,代码肯定也得跟着变吧,代码变了肯定要重新部署呀。我暂时想不到啥办法
@会长:因为不同的application用同一个数据库,一个application需要增加字段,其它application并不需要这个字段,所以如果有办法不需要更新Context是最好
@泰德: 还有这种操作?就算增加了字段,按个不需要这个字段的app也不会错吧
数据库服务器不是应该搞一个开发环境,一个测试环境,一个生产环境的吗?
edmx其实是一些文件组成的,实在不能重新生成,就尝试改文件吧
微软主推的是CodeFrist
如果担心自己学习速度 或者习惯于DBfirst 可以考虑使用EFPowerTools 这个扩展包
可以对现有数据库结构进行解析 生成model 以及表关系 方便向CodeFirst 过度和学习。
https://ask.csdn.net/questions/244796
按上面说的试一下吧。
可以用 migration 生成sql
在生产环境执行sql