簡體   English   中英

實體框架的MVC繼承:如何構建派生類型?

[英]MVC Inheritance with Entity Framework: How do I scaffold a derived type?

有人請向我指出.net控制器的示例代碼和派生類的視圖的方向...

(您可能會想到會有足夠的資源,但我找不到任何...)

在項目中,我有一個派生自Abstract類的類,EF映射了一個按層次結構的表db,在運行時,該數據庫使用“ UserTypeId”說明符按預期顯示。

我已經克服了最初的編譯和運行時錯誤...

我嘗試根據派生類搭建控制器,但是顯然,該控制器的ActionResult需要像

Parent parent = db.AbstractPersons.OfType<Parent>().Single(p => p.AbstractPersonId == id);

此外,索引視圖中存在運行時錯誤,因此我使用

@model IList<BeyondThemes.BeyondAdmin.Models.CardCore.Parent>

則模型沒有正確渲染所需的屬性。

似乎必須有很多人解決此問題,但是ContosoU示例(及其他示例)都沒有描述創建繼承層次結構后如何為模型的Controllers和Views提供支架。

我也很想知道EF6是否將接口與抽象類一樣對待,並且希望看到每個類型的表(甚至每個具體類的表)的示例。

最新的錯誤是 在此處輸入圖片說明

該錯誤提示你傳遞一個ModelIList<Parent>但你處理模型作為一個單一的元素,而不是一個集合。 如果計划傳遞多個項目,則需要添加一個foreach語句以遍歷集合。 如果只需要一個項目,則需要將模型定義更改為僅包含一個項目(並將其從Controller傳遞到View)。

您從控制器傳遞的類型(父類)與視圖的模型(IList)不匹配

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM