我有一个只读数据库,所以我关闭了ObjectTracking(因此隐式关闭了DeferredLoading)。
我希望延迟加载而不使用LoadWith <>。
在我需要数据本身之前,明确告诉Linq去懒惰获取关系的最简单方法是什么。
例如:一个简单的dbml
如果我有以下代码:
TestDbDataContext context = new TestDbDataContext(Settings.Default.TestersConnectionString);
context.ObjectTrackingEnabled = false;
var result = context.Employees.ToList();
foreach (var employee in result)
{
// HERE Should load gift list
foreach (var gift in employee.Gifts)
{
Console.WriteLine(gift.Name);
}
}
我知道我可以再次写一个完整的查询,但我希望我们能够找到更好的方法。
你正在与系统作斗争... 2个想法:
foreach
),为什么你不想使用LoadWith
?这就是文本书的用例有关这两个选项(对象跟踪和延迟加载)链接的原因,请参阅官方回复here。