Breeze - 自创建数据库以来,继续接收模型支持上下文已发生变化

时间:2017-05-30 20:22:21

标签: entity-framework-6 breeze

自从我上次使用Breeze以来已经有一段时间了,所以我正在重新开始关于开始新项目的事情。我现在所处的位置是在Visual Studio 2015中创建了一个包含两个项目的解决方案:

  1. 具有我的实体框架代码优先类
  2. 的类库
  3. 包含我的Entity Framework DbContext
  4. 的类库DataModel Project

    我能够在我的DataModel项目上启用迁移,并能够更新数据库并将我的数据库与我的_MigrationHistory表一起使用,一切看起来都不错。

    然后我在我的解决方案中添加了第三个项目,这是一个空白的MVC项目。然后我通过Nuget Breeze.Server.WebApi2,Breeze.Server.ContextProvider.EF6添加了它,它似乎也添加了Breeze.Server.ContextProvider包。

    我遇到麻烦的地方是当我尝试测试我的breeze控制器并检索元数据时,我得到以下内容:

    类型' System.InvalidOperationException'的例外情况发生在EntityFramework.dll中但未在用户代码中处理

    附加信息:支持' AccountingContext'自创建数据库以来,上下文已更改。考虑使用Code First Migrations来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

    乍一看似乎是一个实体框架问题。但是我的数据库实际上是最新的。我可以回到我的SQL Server并删除它,然后运行update-database,它将重新创建它,我可以将WinForm的应用程序添加到项目中,并且可以使用该项目中的上下文。

    然而,在尝试使用微风控制器时,我遇到了这个问题。

    根据另一个建议,我在网上发现我可以转到SQL Server并从数据库中删除_MigrationHistory表,然后breeze很高兴并将返回MetaData但是如果我这样做我会搞乱我的所有实体框架迁移和然后必须从我的DataModel项目中删除迁移文件夹,然后删除数据库并重新启用迁移并保存迁移并更新我的数据库以重新创建它。

    我会说,当我第一次尝试运行时尝试创建我的MVC项目时,visual studio抱怨System.Web.Http和System.Web.Http.OData和Newton.Json的版本不正确所以我不得不删除引用并从我的项目bin文件夹中删除Dll,然后用Nuget读取它们,现在似乎正在运行这个与Entity Framework相关的错误。

    我看到有些人认为问题可能是我的连接字符串查看不同的数据库时出现问题,但似乎不是这种情况,否则删除_MigrationHistory表将无法解决问题。

    任何人都可以提供的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我能够根据另一篇文章找到解决方案:

EF6 with new database generates 'The model backing the <Database> context has changed since the database was created.'

希望这可以帮助其他参与此问题的人。