簡體   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