0

A、B、C の 3 つのエンティティ タイプがあります。

これらは同じデータベース テーブルにマップされます。

B と C は A を継承します。

データベース テーブルには、A、B、および C によってマップされる 3 つのレコードがあります。

構成ファイルで B と C をマップしたままにすると、各エンティティが 3 回取得されます。

B と C のマッピングを削除しようとしたところ、エンティティの総数が 3 になりました。

最後に、SQL Server のプロファイルを作成しました。アプリケーションから開始されたクエリは、3 つの SQL SELECT コマンドに変換されます。

どうすればこれを回避できますか? または、エンティティを取得しようとすると、ターゲットテーブルがマップされている回数だけエンティティを取得することになるという意味なしに、N 個のクラスを同じテーブルにマップできるかどうかを知りたいです。

前もって感謝します。

4

1 に答える 1

4

各具象クラスを個別にマッピングするのではなく、継承マッピング戦略を使用してクラス階層をマッピングする必要があります。3つのタイプすべてを1つのテーブルにすでに格納しているため、クラスごとのテーブルマッピングを使用する必要があります。これこれを参照してください。

于 2011-03-24T14:40:11.767 に答える