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。它在滚动范围内是不可见的。

如果有人遇到同样的问题,请仔细检查您是否勾选了正确的连接字符串。