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

我找到了一种将 DataLoadOptions 与 CompiledQuery 一起使用的方法。 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 回答