code first模式下,同步表结构 返回

问题一:实体中,又添加了新的字段,但是实体对应的sql server数据库中的表里面有大量的数据,怎么在不删除数据的情况下,更新表结构。【db.CodeFirst.InitTables(types)】这个是在我数据表中没有数据的时候会更新,有数据就报错,然后我每次表结构更新的时候,要去备份一下原表的数据,删掉数据再去生成表结构?
问题二:
于是我想着要是能生成数据库脚本也行。可以复制脚本去数据库执行一下
然后我测试了【var diffString= db.CodeFirst.GetDifferenceTables(types).ToDiffString()】,只是生成差异信息,并不能根据差异生成sql脚本,
所以我不明白sql sugar是怎么实现数据迁移的,哪位大佬可以给讲一下
热忱回答(2)
-
fate sta VIP0
2周前用来验证是否有删除操作,有删除操作就需要手动处理一下
var diffString= db.CodeFirst.GetDifferenceTables(types).ToDiffString()
如果没有删除操作就直接更新就行了
db.CodeFirst.InitTables(types)
0 回复 -
LoyalYang VIP0
2周前我又来了,问了fate stay night大佬解决了,知道了原因所在,当表中有数据,只要是新添加的列当要不手动标记【IsNullable = true】,要不就是通过aop扩展添加的列自动IsNullable = true,然后一切顺利。
0 回复