代码优先更新数据库错误“ApplicationDbContext”上下文已更改
Posted
技术标签:
【中文标题】代码优先更新数据库错误“ApplicationDbContext”上下文已更改【英文标题】:Code First Update Database Error 'ApplicationDbContext' context has changed 【发布时间】:2021-03-31 17:00:43 【问题描述】:我将 MVC 5 和 EF 6 与 Code First 一起使用。每次我尝试登录时都会收到此错误:
支持“ApplicationDbContext”上下文的模型已更改 数据库已创建。考虑使用 Code First 迁移 更新数据库 (http://go.microsoft.com/fwlink/?LinkId=238269)。
这个程序可以开发 2 年,直到本周出现这个奇怪的错误。通常在我们更改模型后,我们只需简单地update-database
就可以了。今天我们尝试做同样的事情并且没有返回错误:
PM> update-database Specify the '-Verbose' flag to view the SQL statements being applied to the target database. No pending explicit migrations. Applying automatic migration: 202012212240459_AutomaticMigration. Running Seed method. PM>
我们正在使用自动迁移。但我只是尝试手动添加迁移并再次成功更新数据库,但仍然返回相同的错误。
我们尝试删除数据库并使用update-database
重新创建并创建了一个新数据库,创建了一个虚拟帐户,但仍然返回相同的错误。尝试关注并检查其他线程中的一些建议,但仍然没有得到好的结果。删除迁移历史解决了这个错误,但是当我们update-database
为将来的更新它会创建一个重复的错误,所以这不算作一个解决方案。我不知道要调试什么以及要检查什么。任何帮助表示赞赏。谢谢。
【问题讨论】:
您是否在更改模型后和更新数据库之前添加了新的迁移? @RobWhite 您好,我们正在使用自动迁移。但是我只是尝试手动添加迁移并成功运行更新数据库,但仍然返回错误。我会在问题中添加它 你遇到过这个***问题吗? ***.com/questions/14948205/…我不知道您的解决方案中是否有多个使用实体框架的项目。显然有不同的版本会导致这个问题 @RobWhite 是的,我们每次进行重大更改时都会这样做。当我说我们试图删除并重新创建数据库时,我的意思是像该线程中所说的那样做。 我指的不是主要答案,而是更进一步的线程(我不知道如何链接到特定答案)。您是否有多个使用实体框架的项目? 【参考方案1】:我认为;你改变你的实体类, 1 - 检查您的实体 2 - 在 Context 类中检查您的 DbSet 4 检查您的实体框架版本 3-删除上次迁移并重新安装
【讨论】:
对不起,你知道你在发什么吗?以上是关于代码优先更新数据库错误“ApplicationDbContext”上下文已更改的主要内容,如果未能解决你的问题,请参考以下文章