微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

存储在数据库中的 EF 迁移与原始代码不同

如何解决存储在数据库中的 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语句,你可以看到它,那么源分支上生成的脚本包含这些语句,而在另一个分支上,它完全没有

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。