EntityFramework 不添加 __MigrationHistory 记录
EntityFramework does not add __MigrationHistory record
从 VisualStudio 2015 发布 [ASP.NETWebApi + EF6 + SlowCheetah + Azure SQL] webapp 时,更新生产数据库模式而不向 __MigrationHistory
添加新的迁移记录。
因此,EF 模型绑定总是失败,错误消息如下;
Column names in each table must be unique. Column name 'SomeProperty' in table 'dbo.CommandModels' is specified more than once.
奇怪的是,web.config.dev
应用于开发数据库没有任何问题,但web.config.production
却出现这样的问题。两个配置文件具有相同的层次结构,除了数据库连接字符串和 Publish
向导已相同地检查 Update Database
。
为了解决这个问题,我总是运行 update-database -f -script
,复制最后一行(下面引用的脚本),并在发布后在 SSMS 或 VS 中执行它。此补救措施来自 .
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
VALUES (N'201610070644166_AddAppId', N'Recognition.WebApi.Migrations.Configuration', 0x1F8B0800000000000400ED5CDD6C00E3377481D67897B9418EFA035E217753DC80C62C8C4C0000 , N'6.1.3-40302')
为什么会这样?
我的错。
我在 LogConnectionString
处检查了 [v] update database
,而不是 Publish > Settings
对话框中的 DefaultConnection
。它在滚动范围内是不可见的。
如果有人遇到同样的问题,请仔细检查您是否勾选了正确的连接字符串。
从 VisualStudio 2015 发布 [ASP.NETWebApi + EF6 + SlowCheetah + Azure SQL] webapp 时,更新生产数据库模式而不向 __MigrationHistory
添加新的迁移记录。
因此,EF 模型绑定总是失败,错误消息如下;
Column names in each table must be unique. Column name 'SomeProperty' in table 'dbo.CommandModels' is specified more than once.
奇怪的是,web.config.dev
应用于开发数据库没有任何问题,但web.config.production
却出现这样的问题。两个配置文件具有相同的层次结构,除了数据库连接字符串和 Publish
向导已相同地检查 Update Database
。
为了解决这个问题,我总是运行 update-database -f -script
,复制最后一行(下面引用的脚本),并在发布后在 SSMS 或 VS 中执行它。此补救措施来自 .
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion]) VALUES (N'201610070644166_AddAppId', N'Recognition.WebApi.Migrations.Configuration', 0x1F8B0800000000000400ED5CDD6C00E3377481D67897B9418EFA035E217753DC80C62C8C4C0000 , N'6.1.3-40302')
为什么会这样?
我的错。
我在 LogConnectionString
处检查了 [v] update database
,而不是 Publish > Settings
对话框中的 DefaultConnection
。它在滚动范围内是不可见的。
如果有人遇到同样的问题,请仔细检查您是否勾选了正确的连接字符串。