EF Core回滚空迁移后Model Snapshot未完全还原问题咨询
根因说明
这是EF Core 6.0.0-rc.2版本的已知缺陷,和项目的Nullable开关配置没有关联。
Add-Migration生成空迁移时,快照对比逻辑会隐式忽略ToTable方法第二个schema参数的默认null值,所以此时快照文件不会出现变更;但执行Remove-Migration回滚迁移时,快照回写的代码生成逻辑没有和上述规则对齐,会把默认的null值显式序列化为(string)null写入参数列表,就会出现观测到的多余改动。
该改动本身不会影响程序运行和迁移的正确性:ToTable方法的第二个参数为schema名称,传null等价于不传,都是使用数据库的默认schema。
解决方案
- 临时处理:直接手动撤销Model Snapshot文件的这部分无关改动即可,不需要提交该变更到代码仓库
- 永久修复:将EF Core版本升级到6.0.0正式版及以上即可,该bug已经在正式版中被修复,后续执行迁移相关操作不会再出现这类多余的快照变更
内容的提问来源于stack exchange,提问作者VivekDev
相关产品推荐
相关产品推荐

