EF4 と DB から作成された TPH モデルで継承を使用する必要があります。
シンプルなクラスをテストするための新しいプロジェクトを作成しました。私のクラスモデルがあります:
SQL SERVER 2008 に私のテーブルがあります:
VEHICLE
ID : int PK
Owner : varchar(50)
Consumption : float
FirstCirculationDate : date
Type : varchar(50)
Discriminator : varchar(10)
Scooter、Car、Motorbike、および Bike エンティティを区別するために、Discriminator フィールドの EDMX に条件を追加しました。
MotorizedVehicle と Vehicle は Abstract です。
しかし、コンパイルすると、次のエラーが表示されます。
エラー 3032: 行 78、85 で始まるフラグメントのマッピングの問題:EntityTypes EF4InheritanceModel.Scooter、EF4InheritanceModel.Motorbike、EF4InheritanceModel.Car、EF4InheritanceModel.Bike がテーブル Vehicle の同じ行にマップされています。マッピング条件を使用して、これらのタイプがマップされる行を区別できます。
編集:
Ladislavへ:
私はそれを試して、私のすべてのエンティティでそれになるようにエラーを変更します:
エラー 3034: 行 72、86 から始まるフラグメントのマッピングの問題: エンティティが同じテーブル内の複数の行にマップされています。これらの 2 つのマッピング フラグメントが、重複するキーを持つエンティティの 2 つの > グループを、2 つの異なる行グループにマップしないようにしてください。
Henk へ (Ladislay の提案による):
すべてのマッピングの詳細があります。
どうしたの ?
ありがとう