我有一个只读数据库,因此我关闭了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);
}
}
我知道我可以再次写一个完整的查询,但我希望我们能够找到更好的方法。
答案 0 :(得分:2)
你正在与系统作斗争... 2个想法:
foreach
),为什么不想使用LoadWith
?这就是教科书用例请参阅官方回复here,了解这两个选项(对象跟踪和延迟加载)的关联原因。
答案 1 :(得分:0)