MVC 脚手架不支持 Entity Framework 6 或更高版本

Posted

技术标签:

【中文标题】MVC 脚手架不支持 Entity Framework 6 或更高版本【英文标题】:MVC scaffolding does not support Entity Framework 6 or later 【发布时间】:2013-10-10 12:26:39 【问题描述】:

刚刚升级到 Entity Framework 6 来看看。我正在使用 MVC4。

但我在尝试从模型和上下文中创建控制器时收到此消息。

【问题讨论】:

问题是什么? 嗯,这意味着 。解决方案:使用 Entity Framework 5 或更低版本,或者不使用脚手架 【参考方案1】:

认为这可以使用一些扩展 :) 如上所述 ASP.NET MVC 4 脚手架不支持 EF6 或更高版本。这意味着必须安装与 MVC 4 兼容的旧版 EF。为此:

    打开包管理器控制台: 选择工具 -> 库包管理器 -> 包管理器控制台

    在包管理器控制台中,通过执行以下命令卸载当前的 EF 包:

    UnInstall-Package EntityFramework -Version <version number>

    *其中<version number> 是当前安装的 EF 的版本号。 *注意:要了解安装的 EF 版本,请在包管理器控制台中运行以下命令:

    Get-Package EntityFramework

    为避免潜在的元数据问题,需要删除 Web.config 文件中的提供程序条目:

    打开项目目录下的 Web.config 文件。

    删除以下行:

    <providers> <provider invariantName=System.Data.SqlClient type=System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer /> </providers>

    现在,在 Package Manager Console 中执行以下命令来安装 Entity Framework 5.0.0:

    Install-Package EntityFramework -Version 5.0.0

【讨论】:

谢谢你,这篇文章帮助了我。对其他人的注意事项:您首先需要使用相同的卸载命令卸载依赖于 entityFramework 的几个包,并且使用“UnInstall-Package EntityFramework”而不指定版本就足够了。 我的项目中引用了 MVC 5.2.3,但仍然收到 object reference not set to an instance of an object 错误。我是否需要在 VS 本身中安装/检查某些东西(因为我猜这是一个工具错误)?【参考方案2】:

经过一番挖掘

ASP.NET MVC 4 脚手架不支持 Entity Framework 6 或更高版本。下一个版本的 ASP.NET MVC 将支持 Entity Framework 6 的脚手架。

所以看起来好像要等到 MVC 5 正确发布了

【讨论】:

【参考方案3】:

ASP.NET MVC 4 脚手架不支持 Entity Framework 6 或更高版本。 MVC5 中将包含对脚手架的支持。解决方法是使用 EF5 搭建脚手架,然后升级到 EF6。

http://support.microsoft.com/kb/2816241

【讨论】:

【参考方案4】:

对我来说为 MVC 4EF 6 搭建控制器和视图的解决方法:

    使用现有或新的 MVC 5 项目并复制 实体数据模型 你想在 MVC 中为其创建脚手架 4. 将实体数据模型添加到您的MVC 5 DBContext 在 MVC 5 项目中创建您的脚手架控制器和视图 这显然适用于 EF 6。 将生成的视图从 MVC 5 复制到您的旧 MVC 4 项目

如果您不想降级 EF 版本,这是一种生成脚手架的解决方案。

对我来说这是开箱即用的

【讨论】:

以上是关于MVC 脚手架不支持 Entity Framework 6 或更高版本的主要内容,如果未能解决你的问题,请参考以下文章

运行脚手架控制器时出现 MVC 3 脚手架错误

Entity Framework Core:自动化的数据库脚手架到类库中

在 Entity Framework 7 RC 1 和 ASP.NET MVC 6 中播种初始数据 [重复]

向模型 (edmx) 添加新表而不更新 Database First Entity Framework MVC 应用程序中的其他模型

ASP.NET MVC Core/6:EF 6 脚手架错误

MVC3 Entity Framework 4.1RC @Html.DropDownListFor 如何实际工作?