【问题标题】:Entity Framework Change Assembly Model not recognised实体框架更改装配模型无法识别
【发布时间】:2015-10-26 14:49:59
【问题描述】:

我有一个使用实体框架 V6.1.1 的 MVC 5 网站。实体框架 DbContext 类和模型最初都在网站项目内部。这个项目有 3 个 DbContext 类和 3 个数据库。我还启用了迁移并应用了其中一个数据库。

我现在已将所有实体框架类(包括模型和迁移)移至单独的项目,从那时起,我在应用迁移的数据库中收到以下错误:

支持“MyContext”上下文的模型自 数据库已创建。

数据库没有改变。我还确保配置构造函数和数据库 __MigrationHistory 表中的上下文键相同。

我也看到了以下行为:

  • 我在包管理器控制台中执行 Get-Migrations 并返回正确的迁移。然后我就可以构建和运行该站点,并且在我下次进行更改并构建解决方案之前不会显示任何错误消息。
  • 如果我在配置构造函数的任一数据库中更改上下文键,则不会出现错误,但我假设迁移并未全部被拾取。

我也一直在查看所有迁移文件,包括设计器文件和名称空间都匹配。如果有人能对这个问题有所了解,将不胜感激。

【问题讨论】:

  • 您是否尝试过添加新的迁移,即使它是空的?我过去发现,这一步解决了模型和迁移之间的不一致问题。
  • 是的,我也尝试过,直到我必须再次构建站点,然后我才返回错误消息。

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


【解决方案1】:

你应该把它放在'MyContext'的构造函数中

> Database.SetInitializer<YourDbContext>(null);

【讨论】:

  • 这应该可以消除错误,但它并不完全是一个解决方案。潜在的问题仍然存在。此外,这不应该在上下文的构造函数中。它应该只执行一次,所以可能在上下文的静态构造函数中或在应用程序启动中。
  • 是的,这确实消除了错误,但现在我没有初始化程序,我认为这不是太大的问题。您介意解释一下它是如何修复它的,以及为什么它不是一个完整的解决方案吗?谢谢
  • OK 我意识到这只是跳过了抛出错误的代码。感谢您的建议,但我会尝试找到问题的根源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多