我能找到的最近的东西就是这个问题: EF code migration in reference dll coming through nuget
与该帖子类似,我们有一个使用EF 6编写一些交叉引用记录的包。我最近修改了修改EF使用的表的模式的包。添加了迁移等,并重新部署了Package。到目前为止一切都很好。
我在两个不同的解决方案中引用了这个Nuget包。在一个解决方案中,该软件包尚不存在,因此我将其添加,构建,部署(均使用Team City)到Azure。对于该解决方案,没有预先存在的迁移,因此没有__MigrationHistory表。一旦代码到达外部参照服务,它就会愉快地创建表和__MigrationHistory。表和历史都有正确的列和完整的迁移历史...到目前为止,非常好。
在第二个解决方案中,包已经存在,所以我只是更新它。我期望发生的是当这段代码调用外部参照服务时,它也会运行迁移,更新列名,并插入__MigrationHistory记录。但是,唉,我在日志中得到的是“自创建数据库以来,支持'DatabaseDef'上下文的模型已经改变了......”
在任何一个解决方案中都没有使用任何SetInitializer(代码或配置)。两种解决方案都在相同的地方引用了EF。唯一的区别是,对于“一个有效的”,我实际上在它访问外部参照服务代码时运行调试器。我没有尝试过通过调试器运行的其他解决方案,并且无法想到为什么这很重要,但是发生了奇怪的事情。我还要求我们的Ops团队在某些情况下查看Team City部署是否在部署期间启用代码优先迁移。
问题:
答案 0 :(得分:0)
错误表明您的datacontext架构和数据库架构存在一些冲突。如果您确定两者都相同,请运行add-migration,从“UP()”方法中删除所有代码。运行“update-database”。
参考此主题:repo