首先让我先解释一下我的用例:
假设有一个数据库“汽车”。在该数据库中,每行可能包含Make,Model,EngineType等。我有一个页面,基本上是单个“Car”记录的视图,显示其各种统计信息。在该页面中,我有一个用户控件,可根据“Car”记录计算和显示各种MPG统计数据。用户控件通过属性传递“Car”记录,然后在内部使用它进行计算。
在该用户控件中,会发生类似这样的事情:
private void DataBindGrid()
{
gridView.DataSource = this.CarRecord.GetMPGStats();
}
“CarRecord”内部是一个LINQ-to-SQL查询,使用CarRecord的数据上下文。出于此计算的目的,执行此操作会更有效:
private void DataBindGrid()
{
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Car>(c => c.Engine);
this.CarRecord.DataContext.LoadOptions = dlo;
gridView.DataSource = this.CarRecord.GetMPGStats();
}
出于本示例的目的,忽略这对于传入记录和/或记录的用户控件是否是一个糟糕的设计。的datacontext。
以下是我看到的问题:
所以我有两个问题:
DataContext.LoadOptions = new DataLoadOptions();
或= null;
?提前致谢。
答案 0 :(得分:1)
始终必须在执行第一个查询之前设置数据加载选项。一旦查询执行,你就无法用它们做任何事情。