我想在我的MVC模型中使用繼承。 項目中有2個地方可以讓用戶註冊某些設備的損壞。 當它正在移動或僅在庫存盤點期間。 我: 交通運輸 詳細如何映射MVC模型與繼承目前
stockcheck的 StockCheckDetails
的詳細模型都是某種類型的對象的集合。 可以針對單個明細項目製作單個損壞記錄。 我創建了一個可以記錄損傷細節的抽象損傷模型。
所以我當時有2種型號,從傷害 繼承TransportDetailDamage和StockDetailDamage
我TransportDetail記錄就可以有0或1 TransportDetailDamage記錄。 StockCheckDetail記錄也可以有0或1個StockDetailDamage記錄。
我目前的模型(只是運輸和簡潔,刪除大部分的道具):
public class TransportDetail {
public int TransportDetailID { get; set; }
public int TransportID { get; set; }
public Transport Transport { get; set; }
public TransportDamage TransportDamage { get; set; }
}
public abstract class Damage {
public int DamageID { get; set; }
public string Description { get; set; }
}
public class TransportDamage : Damage {
public TransportDetail TransportDetail { get; set; }
}
我不斷收到從主端錯誤的alsorts無效定義鍵。 我也非常希望能夠定義使用流利的API中的字段名稱,所以我不TransportDamage_DamageID等的喜好最終
編輯: OK我也補充說,似乎讓一些流利的API該模型正常工作,但它似乎並不完全正確,TransportDetail肯定可以有可選TransportDamage但TransportDamage需要TransportDetail存在.... 。地圖覆蓋了數據庫中可怕的自動字段名稱通過:)
modelBuilder.Entity<TransportDetail>()
.HasOptional(x=>x.TransportDamage)
.WithOptionalPrincipal(x=>x.TransportDetail)
.Map(t=>t.MapKey("TransportDetailID"));
這是最好的方法嗎?
是的,據我所知,如何提供兩個實體之間的導航? – Pyrobri 2014-11-06 15:07:48