經過同事排查發現問題源由
1)新增字段,並且該字段是非空。
2)新增字段的表數據量比較多,3千多萬條數據。
3)對象新增的屬性加了virtual 導致數據遷移超時,public virtual 類型 屬性名(而且這個類型是一個class類)。
非空字段EF新增過程必須對整個表添加一個默認值,由於表的數據比較多導致啟動過程超時。
解決辦法:
1)將字段類型加個?,表示字段為可空字段。
2)取消EF的數據自動遷移功能,手動加上新字段,再重啟即可。
3)先將字段設置為可空,部署完成之后再通過Sql語句把不可空字段加上默認值,然后把字段設置為不可空再重新部署。
第3種方法只是我的一個想法不還有待驗證。
在使用以上1和2兩個方法之前試過延長啟動過程的時長,在網上找了幾種方式都沒有效果,也許是沒有設置對吧。