Asp.net-Mvc-3

MVC3 添加控制器腳手架錯誤 - 不支持的上下文類型

  • August 23, 2016

我正在創建一個新的 MVC 3 應用程序。

採取的步驟:

  1. 通過右鍵點擊 Models 並添加“LINQ to SQL Classes”添加新模型

  2. 將表從伺服器資源管理器拖到我的新 dbml 佈局並保存

  3. 右鍵點擊 Controllers->Add->Controller

  4. Enter以下資訊:

控制器名稱: UserController

**模板:**具有讀/寫操作和視圖的控制器,使用實體框架

模型類: aspnet_User (TierPay)

數據上下文類: AgricultureDataContext (TierPay)

視圖: Razor (VBHTML)

5.點擊添加

6.得到以下錯誤:

不支持的上下文類型。

我已經Google搜尋並沒有找到任何答案。謝謝!

使用實體數據模型而不是 Linq to SQL 時出現此錯誤。我從現有的 SQL Server 數據庫創建了模型。該問題是由於在“添加控制器”對話框中選擇了錯誤的數據上下文類引起的。該值需要是頂級類,在我的情況下,名稱中包含“實體”的類。我希望這有幫助。

從實體模型將新控制器添加到 MVC 項目

使用實體框架數據庫第一個選項時,此對話框起初令人困惑。

如果您首先使用 DB,則“模型類”下拉列表和“數據上下文類”下拉列表將顯示為具有相同的類名。

例如,如果您嘗試創建綁定到“使用者”類型模型的控制器,假設您將在模型下拉列表以及對話框的“數據上下文”部分中看到“使用者”。

在對話框的“模型類”部分中,您要選擇模型(此處範例中的使用者)。

在對話框的“數據上下文類”部分中,您不想同時選擇“使用者”。相反,您希望選擇 EDMX 文件中從 ObjectContext 繼承的類。如果您首先使用 DB,那麼下拉列表中將有一個這樣的類。你會在列表中看到這個類,我不知道為什麼其他類在列表中。我認為這可能是微軟的一個小的 UI 缺陷。

如果您不知道這個類是什麼,只需轉到您的 EDMX 模型並點擊與其關聯的 Designer.cs 文件。在這段程式碼的頂部,您將看到繼承自 ObjectContext 的類。這是您要選擇的課程。

引用自:https://stackoverflow.com/questions/9116601