![](/img/trans.png)
[英]Getting error in MVC5 and EF View Scaffolding with DbContext selected
[英]MVC5 and EF6.1.3 Scaffolding problems
尝试通过使用MVC5和Entity Framework 6.1.3的控制器中的“添加视图”功能使用脚手架构建视图时遇到问题。
但是,使用Entity Framework 5.0.0一切正常〜我可以成功构建视图。
使用实体框架 6.1.3
当我选择“添加视图”功能时,出现以下错误
"运行所选代码生成器时出错。'无法检索 'xxx' 的元数据。找不到 'xxx' 的 CLR 类型。
我的环境是 VS2013 Ultimate (Update4),目标框架 4.5.1,C#,MVC5,EF6.1.3 Database First ObjectContext,SQL Server 2008。
我的 DAL 和 MVC 应用程序在不同的项目中。
我通过 Nuget 和包管理器控制台命令行提示进行卸载和重新安装,检查两者是否使用相同版本的 EF6.1.3,并且所有其他引用都是正确的。
我的模型课
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SysviewData;
namespace SysviewWebEF613.Models
{
public class DisplaySysoutModel
{
SysviewEntities context = new SysviewEntities();
public IEnumerable<vw_soServerInfo> GetSysouts()
{
return context.vw_soServerInfo.ToList();
}
}
}
我的控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SysviewWebEF613.Models;
namespace SysviewWebEF613.Controllers
{
public class DisplaySysoutsController : Controller
{
// GET: DisplaySysouts
DisplaySysoutModel model = new DisplaySysoutModel();
public ActionResult Index()
{
return View(model.GetSysouts());
}
}
}
关于 EF6.1.3
1)我使用EF数据库第一个建模。 由于历史原因,我使用 ObjectContext。
2)我尝试使用两种代码生成策略〜“Legacy ObjectContext”和“T4”〜(清理/重建等)都不起作用〜我收到相同的错误消息。
"运行所选代码生成器时出错。'无法检索 'xxx' 的元数据。找不到 'xxx' 的 CLR 类型。
但是,如果我使用 EF5.0.0 ~ 我能够成功构建我的视图。
背景信息 & 为什么我不想使用 EF5.0.0
1) 我正在使用 MVC5 开发一个新的 Web 前端项目,它将替换包含 23 个其他项目的解决方案中的现有 Web 应用程序 ~ 目前使用 EF6.1.3,并且已经使用 EF6.xx 大约 2 年了。
所以,你能理解我不愿意改回使用 EF5.0.0 吗?
2) 所以,出于上述原因~这就是我尝试使用 EF6.1.3 而不是 EF5.0.0 的原因。
使用EF ObjectContext时是否像EF6.xxx不支持MVC5脚手架一样简单?
我已经为此奋斗了好几天~我已经广泛研究了这个问题,虽然我在几年前看到过类似的脚手架问题(MVC4 和 EF6xx 的兼容性)~我理解(可能是错误的)MVC5 和 EF6.1.3现在解决了这些问题,我还没有看到其他人在构建视图时遇到问题~确实~如果我使用相同的代码~但是使用 EF5.0.0~一切正常。
我已经在我的 app.config (DAL) 和 Web.config (MVC 项目) 中仔细检查了我的连接字符串 ~ 似乎都是正确的。
你有什么想法或经历过类似的事情吗?你做了什么来解决这个问题?
解决方案实际上非常简单。
将“数据上下文类:”菜单选项留空
如下
当我将MVC5 / EF 6.1.3解决方案与我的MVC5 / EF 5.0.0解决方案进行比较时,我才对此有所了解。
〜你没有得到EF 5.0.0的“数据上下文类:”菜单,所以在预感中,我试图在我的EF 6.1.3解决方案中创建一个视图,将“数据上下文类:”菜单保留为空并且BINGO~View生成成功。
在过去的两分钟里,我创建了另外两个模型,每个模型都有一个控制器,并使用脚手架成功构建了可渲染的视图。
死灵术。
为什么在带有 MVC 5.2.7 的 Visual Studio 2019 中仍然会发生这种情况?
我安装 EF 6.4.4。 当我使用上下文来处理导航属性的视图时,它会恢复到 6.1.3
这会导致错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.