【问题标题】:EF code first migration from Nuget referenceEF 代码第一次从 Nuget 参考迁移
【发布时间】:2015-10-27 06:35:57
【问题描述】:

我能找到的最接近的是这个问题: EF code migration in reference dll coming through nuget

与那篇文章类似,我们有一个使用 EF 6 编写一些交叉引用记录的包。我最近修改了修改 EF 使用的表的架构的包。添加迁移等,并重新部署包。到目前为止一切顺利。

我在两种不同的解决方案中引用了这个 Nuget 包。在一个解决方案中,该包尚不存在,因此我将它添加、构建​​、部署(均使用 Team City)到 Azure。对于该解决方案,没有预先存在的迁移,因此没有 __MigrationHistory 表。一旦代码访问外部参照服务,它就会愉快地创建表和 __MigrationHistory。表和历史都有正确的列和完整的迁移历史......到目前为止,一切都很好。

在第二个解决方案中,包已经存在,所以我只是更新了它。我期望发生的是,当此代码调用外部参照服务时,它还将运行迁移、更新列名并插入 __MigrationHistory 记录。但是,唉,我在日志中得到的只是“支持 'DatabaseDef' 上下文的模型在创建数据库后发生了变化......”

在这两种解决方案中,我们都没有使用任何 SetInitializer(代码或配置)。两种解决方案都在相同的地方引用了 EF。唯一的区别是,对于“有效的”,当它遇到外部参照服务代码时,我实际上是通过调试器运行的。我还没有尝试过通过调试器运行的其他解决方案,也想不出为什么这很重要,但是发生了奇怪的事情。我还向我们的 Ops 团队提出了一个请求,以查看 Team City 部署是否在某些情况下在部署期间启用代码优先迁移。

问题:

  1. 任何想法为什么一个可以工作而不是另一个?
  2. 在“Xref Nuget 包”中,我应该在哪里放置初始化程序(如果有的话)?那里没有 App_Start 或 global.asax……只是一个程序集在写外部参照记录。
  3. 还有什么我忽略的吗?

【问题讨论】:

  • 更新 - 通过将 <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion... 添加到我的 web.config 我能够迁移解决方案 2。我对这个解决方案并不完全满意,所以我仍在寻找问题。

标签: c# entity-framework asp.net-mvc-4


【解决方案1】:

该错误表明您的数据上下文架构和数据库架构存在一些冲突。如果您确定两者相同,请运行 add-migration,从“UP()”方法中删除所有代码。运行“更新数据库”。

参考这个帖子:Entity Framework Code Migrations - Stuck on Initial Migration

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多