6

Entity Frameworkを使用する場合の、外部キーと独立した関係の概念に関するいくつかの記事と質問を読みました。そして、私はまだ100%どちらに行くべきかわからない....私はすでに「持っている」へのプロパティ参照を持っているときにFK関係で使用されるプロパティを持つことによって私のドメインPOCOを「汚染」したくない物体。

私の質問は(@ EFTeam、@ Ladislav Mrnkaを見て)

  1. 今後のEntityFrameworkv5で、このテーマに改善はありますか?
  2. 独立した関連付けの代わりにFKを使用する場合(特に最初にコードを使用する場合)、より多くの利点がありますか?
4

2 に答える 2

5

大きなモデルがある場合は、とにかくドメインオブジェクト(または一般的な概念モデル)を「汚染」する必要があります。FKにマップされた関連付けを持つモデルの場合、「ビュー生成」(クエリの実行または変更の保存に必要なEF処理パイプラインのステージであり、ビルド時(「ビューの事前生成」)に移動できるステージ)のコストは次のようになります。独立した関連付けを持つモデルと比較して低い。これは、実行にかかる時間が小さなモデルでは気付かない可能性があるため重要ですが、特にnull許容の外部キー(to-0..1、またはto-1と派生エンティティ)にマップされた関連付けがある場合は、非常に速く長くなります。 TPHマップ階層で)。公式のEF5パフォーマンス考慮事項ドキュメント非常に大規模なモデルのビュー生成時間の違いの例は、「1か月以上経過してからあきらめた」(独立したアソシエーションの場合)と104分(FKマップのアソシエーションの場合)の違いです。私の場合(数百の高度に接続されたエンティティ)、25分から40秒の間です。EF5の状況は、以前のバージョンと同じです。

于 2012-06-20T09:14:35.160 に答える
2

改善はありません。両方のオプションがまだ存在します。FKアソシエーションを使用する利点は、切断されたオブジェクトグラフを操作するときに、1対多の関係の変更を簡単に処理できることです。また、使用する場合はデータバインディングを簡素化する必要があります。

于 2012-06-20T08:41:33.550 に答える