Entity framework 实体框架迁移“;背景已经改变;即使在重置所有迁移之后,错误仍然存在

Entity framework 实体框架迁移“;背景已经改变;即使在重置所有迁移之后,错误仍然存在,entity-framework,asp.net-mvc-5,entity-framework-migrations,Entity Framework,Asp.net Mvc 5,Entity Framework Migrations,我有一个包含两个项目的解决方案,main有用户类(默认为MVC5),另一个我有我的业务类 在我的代码中做了一些更改后,我发现了错误: 自创建数据库以来,支持“EfDbContext”上下文的模型已更改。考虑使用代码第一迁移来更新数据库().< /P> 我已经执行了添加新迁移和更新数据库的命令。错误还在继续 在此之后,我尝试了许多方法来解决问题,包括以下解决方案: 及 但我仍然有一个错误: PS:我已经删除了我的数据库并重新创建了它,问题仍然存在 我不明白为什么这个错误还在发生。当我执行命令

我有一个包含两个项目的解决方案,main有用户类(默认为MVC5),另一个我有我的业务类

在我的代码中做了一些更改后,我发现了错误:

自创建数据库以来,支持“EfDbContext”上下文的模型已更改。考虑使用代码第一迁移来更新数据库().< /P> 我已经执行了添加新迁移和更新数据库的命令。错误还在继续

在此之后,我尝试了许多方法来解决问题,包括以下解决方案:

但我仍然有一个错误:

PS:我已经删除了我的数据库并重新创建了它,问题仍然存在

我不明白为什么这个错误还在发生。当我执行命令
Add Migration
时,创建的文件的函数为空

更新(2014年11月12日):

我制作了一个视频,展示了我正在尝试的所有过程,证明我使用的数据库与我在迁移中更新的数据库相同


顺便说一句,我注意到我可以在数据库中插入数据,如视频中所示,但在插入数据之后,会发生错误。

如果您对现有数据不感兴趣,以下操作肯定会起作用:

  • 扔掉你的数据库
  • 扔掉所有迁移文件
  • 运行
    添加迁移
  • 运行
    更新数据库

  • 这有点像蒸汽压路机,但如果您不想找出问题的真正原因,它会帮您摆脱麻烦。

    您的代码在内部调用CreateDatabaseIfNotExists…InitializeDatabase时失败-出于某种原因,您的应用程序认为数据库不存在,并试图从模型代码创建它。您正在为ASPNet标识表和专有表使用相同的数据库;第一次尝试从专有表(Cms)访问数据时,会出现异常

    可能对ASPNet表使用不同的数据库名称,以便它们不在CMS数据库中

    ,因为您在Package Manager控制台中使用迁移来创建/更新架构,所以不要使用CodeFirst数据库初始值设定项功能。在EfDbContext的构造函数中,将null传递给Database.SetInitializer()方法,以防止首次访问时尝试初始化数据库。有关代码示例,请参见此链接:

    .

    不确定,但 启用迁移或添加迁移时,请尝试使用-projectName。 我记得在解决方案中对多个项目运行迁移时遇到了一些问题。
    我记得在某个地方读到过,他们把这套设备用作启动项目或类似的想法。

    谢谢你的回答,但我已经这么做了。错误仍在继续。如果我关心我现有的数据,我如何才能找到错误的根源?我在备份数据库后删除了它。请确保您所针对的项目与您正在查看浏览器的项目相同,并且您希望该项目使用的数据库与它正在使用的数据库相同。@ChrisPratt肯定是同一个数据库。我很难相信您这样做,您正在查看针对其执行迁移的数据库,问题仍然存在。如果这是真的,它是EF中的一个bug,但我有疑问。你尝试过用空白文件迁移吗?有时这样做只会让EF重新开始工作。当然,我已经这样做了。您是从package manager配置迁移还是使用fluid api
    OnModelCreating
    ?@DaveAlperovich我使用“OnModelCreating”删除自动复数化。在nugget软件包管理器中,我只运行命令Enable-Migrations.settingmigrationsfromNuget是推荐的方法,但我发现它模棱两可且有缺陷。尝试在模型基类中设置迁移:
    public ResumeContext():base(“name=ResumeContext”){this.Configuration.LazyLoadingEnabled=false;this.Configuration.ProxyCreationEnabled=false;this.Configuration.AutoDetectChangesEnabled=true;Database.SetInitializer(新MigrateDatabaseToLatestVersion());}
    我尝试了这两种解决方案,但没有成功……无论如何,谢谢。