从VisualStudio 2015发布[ASP.NET WebApi + EF6 + SlowCheetah + Azure SQL] webapp时,生成数据库模式会更新,而不会向__MigrationHistory
添加新的迁移记录。
因此,EF模型绑定总是失败,错误信息如下所示;
每个表中的列名必须是唯一的。专栏名称' SomeProperty'在表格中,dbo.CommandModels'被指定不止一次。
我们想到的是,web.config.dev
没有任何问题地应用于开发数据库,但是web.config.production
会产生这样的问题。两个配置文件具有相同的层次结构,但数据库连接字符串和Publish
向导已同样检查Update Database
。
要解决此问题,我总是运行update-database -f -script
,复制最后一行(在引用脚本下面),并在发布后在SSMS或VS中执行它。这种补救措施来自https://stackoverflow.com/a/13957069/361100。
INSERT [dbo]。[__ MigrationHistory]([MigrationId],[ContextKey],[Model],[ProductVersion]) VALUES(N' 201610070644166_AddAppId',N' Recognition.WebApi.Migrations.Configuration',0x1F8B08000000000000000400ED5CDD6C00E3377481D67897B9418EFA035E217753DC80C62C8C4C0000,N' 6.1.3-40302')
为什么会这样?
答案 0 :(得分:0)
我的坏。
我在LogConnectionString
检查了[v] update database
,而不是DefaultConnection
对话框中的Publish > Settings
。滚动范围无法看到它。
如果有人遇到同样的问题,请仔细检查您是否选择了正确的连接字符串。