当前模型不再匹配用于预生成映射视图的模型

The current model no longer matches the model used to pre-generate the mapping views

我最近编辑了一个模型并向我的项目添加了一些新模型。我在控制台中输入 "add-migration sth" 并升级了数据库。 现在,当我想通过我的 MVC 站点连接到数据库时,出现此错误:

The current model no longer matches the model used to pre-generate the mapping views, as indicated by the ViewsForBaseEntitySets8f8ed3558b66b3b0b5bd7e2867696566a8a1964469dfa075926133c040704be5.MappingHashValue property. Pre-generated mapping views must be either regenerated using the current model or removed if mapping views generated at runtime should be used instead. See http://go.microsoft.com/fwlink/?LinkId=318050 for more information on Entity Framework mapping views.

我发现可能是 blame of old EF installed 的信息,但我想我有最新的信息:

<package id="EntityFramework" version="6.1.2" targetFramework="net45" />

怎么了?如何解决?

我看到其他人也有同样的问题。

这里描述了解决方案: https://msdn.microsoft.com/en-us/data/dn469601.aspx

您所要做的就是右键单击带有 DbContext 的 class 文件,从下拉菜单中选择 "Entity Framework",然后单击 "Generate Views"。

原因是:"Views" 文件不适合模型,因此您必须使用我在此处提到的选项再次生成它。

更新: 上面的解决方案需要 EF Power Tools,不幸的是,Visual Studio 2015 不支持它。终于正式了,因为你无论如何都可以安装它,方法如下:http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/

如果 link 不起作用:

  1. 下载Ef Power Tools
  2. 下载的文件有 *.vsix 扩展名。手动更改为 *.zip
  3. 查找extension.vsixmanifest
  4. <SupportedProducts>中添加14.0版本(与其他现有版本相同)
  5. 反转所有步骤,重新创建*.vsix文件
  6. 运行它,安装在Visual Studio

目前我不知道任何其他简单的方法。