繁体   English   中英

"MVC5 和 EF6.1.3 脚手架问题"

[英]MVC5 and EF6.1.3 Scaffolding problems

尝试通过使用MVC5Entity 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM