2015-12-02 26 views
5

在Visual Studio 2015中構建MVC視圖腳手架是否有一個原因與包含通用標識的繼承基類無效?簡單的測試用例:MVC視圖腳手架不能使用泛型基類嗎?

public abstract class BaseEntity 
{ 
} 

public abstract class Entity<TKey> : BaseEntity 
{ 
    public TKey Id { get; set; } 
} 

public class Country : Entity<int> 
{ 
    public string Name { get; set; } 
    public string CountryCode { get; set; } 
} 

試圖建立一個腳手架視圖(如列表,創建,編輯,刪除),使用下面的錯誤彈出國家實體結果:

時出錯運行選定的代碼生成器:'方法或操作未實現。'

如果刪除了TKey類型參數,並Entity非通用通過定義標識的固定型,然後我可以腳手架的意見。

我知道在這個簡單的例子中,我沒有通過使用泛型基類來節省自己的工作。我也意識到,「最佳實踐」是在視圖中使用視圖模型而不是域模型。但是,我想了解爲什麼使用帶有泛型類型的基類會對腳手架造成問題。

回答

2

我也遇到過這個錯誤,發現它已經在Microsoft Connect上報告過。我們似乎有現在唯一的選擇是:由臨時刪除繼承來自控制器

  • 生成視圖(不是一個好主意,雖然,但可避免失去了大量的時間)
  • 等待來自微軟修復

注意:看來同樣的問題影響的Visual Studio 2013(更新5),但我沒有發現任何的bug追蹤器條目。

如果你想跟着bug修復的進程或提供進一步的信息,以支持團隊,你可以在這裏支付給微軟的bug跟蹤訪問: https://connect.microsoft.com/VisualStudio/feedback/details/2187798/mvc-view-scaffolding-not-working