深入探索数据查询与加载:LINQ to Entities 与 Entity SQL
1. 延迟加载的性能考量
在处理数据加载时,延迟加载(Lazy Loading)和显式加载相关数据都会导致额外的数据库往返操作。很多开发者在未对数据库活动进行性能分析时,可能意识不到这一点。这种额外的往返操作效率极低,还可能给公司的 IT 专业人员带来麻烦。
当禁用延迟加载时,我们能对额外的数据库往返操作时机进行一定控制。例如,若想检查联系人信息,然后仅为特定联系人加载地址信息,使用 Load 方法是个不错的选择。以下代码展示了这种场景:
foreach (Contact contact in contacts)
{
Console.WriteLine(contact.LastName);
if (contact.AddDate > System.Convert.ToDateTime("1/1/2008"))
{
contact.Addresses.Load();
}
}
启用延迟加载时,实现这种细粒度的控制会更困难。不过,启用延迟加载的好处是,不用担心因忘记或不知道需要显式加载相关地址信息,而误报某个联系人没有地址,实际上数据库中可能存在该联系人的多个地址。
2. 使用 Include 方法进行预加载
若确定需要一次性获取所有地址信息,将其作为原始查询的一部分进行检索可能更高效。除了在 SELECT 子句中包含地址信息进行投影查询外,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



