entity-framework - 存储在数据库中的 EF 迁移与原始代码不同
问题描述
我有 EF 代码第一次迁移,当我应用它时,它应该将用于应用向下迁移的脚本存储在数据库中。但是,当我从不包含迁移代码的应用程序版本应用向下迁移时,它似乎包含与原始迁移不同的脚本。
迁移代码:
DropColumn("dbo.AppLogEntries", "Id");
AddColumn("dbo.AppLogEntries", "Id", c => c.Guid(nullable: false, defaultValueSql: "newsequentialid()"));
从 PMC 生成的脚本:
ALTER TABLE [dbo].[AppLogEntries] DROP COLUMN [Id]
ALTER TABLE [dbo].[AppLogEntries] ADD [Id] [uniqueidentifier] NOT NULL DEFAULT newsequentialid()
应用脚本:
ALTER TABLE [dbo].[AppLogEntries] ALTER COLUMN [Id] [uniqueidentifier] NOT NULL
整个向下迁移脚本在代码中迁移的分支和另一个分支上看起来不同,当我在迁移的分支上应用向下迁移时,它是从数据库中获取的,详细日志看起来与生成的完全一样脚本
在存储向下脚本之前是否进行了一些“优化”,或者我做错了什么?
编辑:经过更多调查,似乎向下迁移的脚本根本没有存储在数据库中(或者在应用时被忽略)如果您在迁移中添加一些依赖于模型更改的 sql 语句,您可以看到它,然后在源分支上生成的脚本包含这些语句,而在另一个分支上,它完全缺少它们
解决方案
推荐阅读
- javascript - 对象的属性在放入本地存储时不会修改元素的值
- ios - 如何为我的视图解决自动布局约束
- mongodb - 在 mongodb 中按 ObjectId 的时间戳部分对文档进行分组
- awk - 从 1 awk 中减去文件的值
- android - 我该如何解决 - 无法解析符号执行
- android - 如何在没有任何服务器端代码的情况下借助 HTML 在 android 和 iphone 中添加新的联系人屏幕?
- docker - Kubernetes 入口域重定向
- android - 如何使用浮动菜单选项创建底部导航栏?
- angular - “字符串”类型的角参数不可分配给“数字”类型的参数
- python - 我正在尝试测量随机游走总位移的大小分布