2013-07-24 91 views
2

我最近開始在項目中使用實體框架,我在想如何建模一個特定的案例。如何在繼承實體中指定屬性的類型?

考慮這種情況:

  • 我的應用程序需要模擬多種類型的合同
  • 每個類型的合同中包含分包的一個或多個實例的
  • 每個類型的合同暴露了其分包集合中
  • 每種類型的合同都只能包含對應於合同之一的特定類型的分包合同(類型爲ContractA的合同僅包含類型爲的分包合同,ContractB類型的合同將只包含SubcontractB型)

什麼會是實體框架模型到模型的最佳方式的分包合同?

我的第一次嘗試使用了基本類型之間的關聯,但是我希望能夠在每個派生類型的合同中指定分包合同的類型,而無需在特定類型的合同中擁有兩個不同的屬性。

回答

0

最近我遇到了類似的情況。我最終只設置了基本類型之間的關聯,併爲實體添加驗證,以確保屬性僅包含正確的子類型。退房IValidatableObject

缺點是這種情況發生在運行時,所以程序員可以分配錯誤的類型,直到他們測試纔會發現。它還需要將對象轉換爲正確的類型才能使用它們。這是我能想到的最好的選擇。

我很想知道是否有人有更好的解決方案。