经过同事排查发现问题源由
1)新增字段,并且该字段是非空。
2)新增字段的表数据量比较多,3千多万条数据。
3)对象新增的属性加了virtual 导致数据迁移超时,public virtual 类型 属性名(而且这个类型是一个class类)。
非空字段EF新增过程必须对整个表添加一个默认值,由于表的数据比较多导致启动过程超时。
解决办法:
1)将字段类型加个?,表示字段为可空字段。
2)取消EF的数据自动迁移功能,手动加上新字段,再重启即可。
3)先将字段设置为可空,部署完成之后再通过Sql语句把不可空字段加上默认值,然后把字段设置为不可空再重新部署。
第3种方法只是我的一个想法不还有待验证。
在使用以上1和2两个方法之前试过延长启动过程的时长,在网上找了几种方式都没有效果,也许是没有设置对吧。