最初に SQL データベースにマップされた EF6 データベースを使用しているプロジェクトがあります。これはすべて新しいため、EF モデルとデータベース スキーマを制御します。
現在、簡単にするために Vehicle と呼ぶテーブルがあります。Discriminator 列を使用して、サブクラスの Entities Car および Truck を取得します。これはすべてうまくいきます。
次に、「ソフト削除」を実行して、削除された車両を VehicleHistory テーブルに移動する必要があります。(EFでこれを試した後、おそらくSQLトランザクションを使用します)。これはレビュー可能にする必要があるため、この履歴テーブルもマップする必要がありますが、他のクラスで簡単に再利用できるように継承階層内に保持したいと考えています。
私のアイデアは、共有列の Vehicle への FK を持つ 'vehiclecurrent' および 'vehiclehistory' テーブルを作成することでした。次に、EF で TPT を使用して、TPH クラスから派生した「carcurrent」、「carhistory」などを取得します (たとえば、carhistory->car->vehicle)。これは機能せず、エラー 3034 が表示されます:「異なるキーを持つエンティティが同じ行にマップされています」
だから私の質問は、基本的にどうやってこれをやってのけることができますか? このアプローチはどのように機能しますか、またはこれを達成する別の方法はありますか? ありがとう!