我想定義EntityType是ViewModel的基類,並且在Save方法中,我想將ViewModel實例上傳到EntityType並保存到DBContext。但是,代碼行_DbContext.Add((EntityType)vm);不會做鑄造。我如何解決它?C#模板不能倒下子類型
public class ReportDefinitionDetailsController : BaseDataController<ReportDefinitionDetail, int, ReportDefinitionDetailsViewModel>{}
public abstract class BaseDataController<EntityType, Key, ViewModel>
where ViewModel : EntityType, new()
where EntityType : AuditTrail, new()
{
public void Save(ViewModel vm)
{
_DbContext.Add((EntityType)vm);
}
}
當你說「不工作」,這是相當有用的因爲我們無法從我們所在的位置看到你的屏幕,並且通過未知距離讀取頭腦通常是不可靠的。你有編譯器錯誤嗎?它是否不正確保存?是否有其他問題?請[編輯]你的問題,提供更多關於什麼是「不工作」的細節。如果您向我們提供這些信息,我們會幫助您更輕鬆地得到答案。謝謝。 :-) –
這沒有任何意義。 ViewModel IMPLEMENTS實體類型,所以它不是一個向下投,而是向上投。 –
宇宙先生用錯字 –