0

CompiledQueryのパフォーマンスを調査していますが、CompiledQueryはLoadWithにアレルギーがあります。

using (CustomDataContext myDC = new CustomDataContext())
{
  DataLoadOptions options = new DataLoadOptions();
  options.LoadWith<Customer>(c => c.Orders)
  myDC.LoadOptions = options;

  IQueryable<Customer> query = myDC.Customers.Where(filterExpr);
  List<Customer> result = query.ToList();
  return result;
}

このコードは、左結合SQLクエリを発行することによってロードされた各CustomerインスタンスのOrdersプロパティにデータを入力します。LoadWithなしでクエリを書き直して同じ結果を得るにはどうすればよいですか(顧客はOrdersプロパティにデータを入力しています)?

4

1 に答える 1

0

CompiledQueryでDataLoadOptionsを使用する方法を見つけました。 http://www.mrkwatkins.co.uk/Blog/2010/05/16/Improving-LINQ-To-SQL-Performance-Part-2---Combining-Compiled-Queries-And-Load-Options

これには、コンパイル時にDataLoadOptionsのインスタンスを使用可能にし、CompiledQueryインスタンスの存続期間中そのDataLoadOptionsインスタンスを保持し、CompiledQueryが実行されるたびにそのDataLoadOptionをインプレースおよびアウトプレースにスワップすることが含まれます。

于 2011-08-24T18:20:50.160 に答える