我在這裏有一個問題與傳承問題實體框架5C#實體框架 - 與部分類
在我的節目,我有如下定義一個基類:
public abstract class CoreProduct
{
public abstract decimal Price { get; set; }
public abstract decimal CategoryID { get; set; }
public abstract decimal Quantity { get; set; }
public decimal CalculatePrice()
{
//Code to calculate the price here
}
}
我想有由Entity Framework自動生成以從這個類繼承的特定類,以便我可以根據數量計算它們的價格等。
所以我所做的是爲普通產品創建一個新文件並執行此操作:
public partial class Product : CoreProduct
{
public override decimal Price { get; set; }
public override decimal CategoryID { get; set; }
public override decimal Quantity { get; set; }
}
但由於字段Price,CategoryID和Quantity是由Entity Framework自動生成的,所以我必須將它們從EF生成的auto文件中刪除,然後一切正常。
我的問題是,每次我必須更新我的模型時,代碼會再次自動生成,我必須手動重新刪除所有繼承我的CoreProduct類的類的所有字段。
什麼是更好的方式來實現這一點,所以我不必每次必須手動刪除50個字段來更新我的模型?
您是否真的需要這些屬性在基類中是抽象的?你真的在你的覆寫中做任何事情嗎? – ESG
除了覆蓋他們,我其實並沒有對屬性做太多的事情,我的問題是如果我只在父類聲明他們,我就無法從基類訪問它們,除非有一種我不知道的方式? – Darkalfx
如果它們是父類中的公共(或受保護且以上,但EF需要公開),則可以在子類中訪問它們。請注意,當我說父母時,我的意思是讓他們在您的CoreProduct類中聲明。 – ESG