[英]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.