DataLoadOptions
LINQ to SQL の LINQ to Entities に存在するクラスのバージョンはありますか? 基本的に、熱心な読み込み構成のすべてを格納する 1 つの場所が必要であり、.Include()
すべての LINQ to Entities クエリへの呼び出しを追加する必要はありません。または、誰かがより良い解決策を持っている場合は、それにも確実に対応できます。
ティア、
ベンジー
DataLoadOptions
LINQ to SQL の LINQ to Entities に存在するクラスのバージョンはありますか? 基本的に、熱心な読み込み構成のすべてを格納する 1 つの場所が必要であり、.Include()
すべての LINQ to Entities クエリへの呼び出しを追加する必要はありません。または、誰かがより良い解決策を持っている場合は、それにも確実に対応できます。
ティア、
ベンジー
個人的には、に相当する(公式の)EFがないことをうれしく思いDataLoadOptions
ます。なんで?いくつかの理由:
Customer
てOrders
もらいたい(怠惰かどうか)。他の場所(によって)で定義されたフィルターは簡単に忘れられます。必要なときに必要な場所でフィルタリングします。これは最後の異議につながります:Orders
AssociateWith
DataLoadOptions
変更します。DataContext
必要な場所とタイミングで積極的な読み込みを定義することを好みます。入力は安価で、バグは高価です。それにもかかわらず、完全を期すために、MuhammadMosaがDataLoadOptionsのEFバージョンにいくらかの努力を払ったことを言及する必要があります。私はそれを試したことはありません。
おそらくコードの繰り返しを防ぎたいと思います。ただし、複数の場所で同じ形状のクエリが必要な場合は、「グローバルに」定義されたインクルードの有無にかかわらず、すでにコードを繰り返しています。中心的なイーガーローディング構成は、疑似DRY-nessです。そしてすぐに、熱心な読み込みが望ましくないときに自分の足でつまずくことに気付くでしょうが、くそー、それは起こるように構成されています!
Entity Framework は、'ObjectContext' 全体の一括読み込み設定をサポートしていません。ただし、必要なすべての「IQueryable」プロパティを、部分クラスのインクルード オプションで宣言できます。例えば:
public IQueryable<Order> Orders {
get {
return OrderSet.Include("OrderDetails");
}
}