3

私は本Programming Entity Framework: DbContextを​​読んでいて、3 つのデータ読み込みタイプに関する章を読んだところです。

  • 遅延読み込み (デフォルト)
  • イーガーローディング
  • 明示的な読み込み

今、どのような状況でどのデータ読み込みが優れているかを自問自答しています。具体的な比較がいいですね!私は何も見つけていません。

たとえば、クライアントのモジュールでデフォルトの遅延読み込みを使用しています。このモジュールは営業担当者を扱い、次の関連テーブルを意味します。

  • 担当者
  • 担当者_ゾーン
  • 担当者_前提条件
  • ユーザー
  • 担当者_言語

モジュールでは、これらすべてのテーブルを使用してアポイントメントをディスパッチします (一度に約 150 件のアポイントメントから 50 件の担当者まで) が、時間がかかります。別の読み込み戦略を使用すると、パフォーマンスが本当に向上しますか?

4

1 に答える 1

2

遅延読み込みは、個別のデータ層を持たない小さなアプリに最も適しているようです。アプリが大きくなり、別のレイヤーに分割し始めると、遅延読み込みはあまり役に立ちません。DBcontext は、データが UI レイヤーに到達するまでに長い間破棄されており、データレイヤー内にいる間は、ロードするプロパティを指定することは大したことではありません。

検証のために遅延読み込みがオフになっているため、プロパティが必須としてマークされていて、親のみを読み込んだ場合、常にエラーがスローされ、非常にイライラします。

遅延読み込みでは、クエリが使用されるまで実行されないため、デバッグがかなり難しくなり、クエリの結果を簡単に調べることができなくなります。私は通常、ToList() などを EF クエリに追加して、結果を簡単に調べることができるようにします。

于 2012-05-19T08:17:37.793 に答える