簡體   English   中英

EF4和多個抽象級別

[英]EF4 and multiple abstract levels

我需要對EF4和從數據庫創建的TPH模型使用繼承。
我創建了一個新的projet來測試簡單類。 有我的班級模型:

在此處輸入圖片說明

在SQL SERVER 2008中有我的表:

VEHICLE 
  ID : int PK
  Owner : varchar(50)
  Consumption : float
  FirstCirculationDate : date
  Type : varchar(50)
  Discriminator : varchar(10)

我在EDMX的Discriminator字段上添加了一個條件,以區分Scooter,Car,Motorbike和Bike實體。

機動車輛和車輛是抽象的。

但是當我編譯時,出現此錯誤:

錯誤3032:映射片段的問題從第78行和第85行開始:EntityTypes EF4InheritanceModel.Scooter,EF4InheritanceModel.Motorbike,EF4InheritanceModel.Car,EF4InheritanceModel.Bike被映射到表Vehicle中的相同行。 映射條件可用於區分這些類型映射到的行。

編輯:
致拉迪斯拉夫:
我嘗試了一下,並將錯誤更改為所有實體的錯誤:

錯誤3034:映射片段的問題從第72、86行開始:實體被映射到同一表中的>不同行。 確保這兩個映射片段不會將鍵重疊的兩個實體組映射到兩個不同的行組。

致Henk(建議Ladislay):
有所有映射詳細信息: 在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明

怎么了 ?

謝謝

EF4不能很好地處理這些問題。 您可以使用區分符來實現,但是這些類必須是非抽象的。 您必須使用另一種方法,例如代碼分析或測試,以確保基類不會被除實體框架以外的任何實例所實例化。

或者,您可以升級到EF6。 我不確定它是否會更好地支持它,但是它肯定會更好地處理模型層次結構,從而允許更好的數據庫模式更好地支持模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM