【发布时间】:2017-02-16 04:17:02
【问题描述】:
在从 VisualStudio 2015 发布 [ASP.NET WebApi + EF6 + SlowCheetah + Azure SQL] webapp 时,生产数据库架构会更新,而不会向 __MigrationHistory 添加新的迁移记录。
因此,EF模型绑定总是失败,错误信息如下;
每个表中的列名必须是唯一的。表“dbo.CommandModels”中的列名“SomeProperty”被指定了多次。
奇怪的是,web.config.dev 应用到开发数据库没有任何问题,但web.config.production 却出现了这样的问题。除了数据库连接字符串和Publish 向导对Update Database 进行了相同的检查外,这两个配置文件具有相同的层次结构。
为了解决这个问题,我总是运行update-database -f -script,复制最后一行(引用脚本下方),并在发布后在 SSMS 或 VS 中执行。此补救措施来自https://stackoverflow.com/a/13957069/361100。
插入 [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion]) 值(N'201610070644166_AddAppId',N'Recognition.WebApi.Migrations.Configuration',0x1F8B0800000000000400ED5CDD6C00E3377481D67897B9418EFA035E217753DC80C62C62C8C4C0040302,N')。
为什么会这样?
【问题讨论】:
标签: c# asp.net entity-framework msdeploy