延迟加载:又称作懒加载。也就是LinqTo EF并不是直接将数据查询出来,而是要用到具体数据的时候才会加载到内存
lnclude是将关联实体一块加载
ToList等可以直接将数据加载到内存
#region 第一种延迟加载 用到的时候就会去查询数据,所以不适合存到缓存中
用到的时候就会去查询数据。
foreach (var userInfo in temp)
{
Console.WriteLine(userInfo.ID + " " +userInfo.UName);
}
foreach (var userInfo in temp)
{
Console.WriteLine(userInfo.ID + " " + userInfo.UName);
}
var temp2 = from u in temp
where u.ID > 0
select u;
foreach (var userInfo in temp2)
{
Console.WriteLine(userInfo.ID + " " + userInfo.UName);
}
#endregion
#region 第二种延迟加载 适合两张表数据量非常大的情况
//foreach (var userInfo in temp)
//{
// foreach (var orderInfo in userInfo.OrderInfo)//读一个用户的同时,将该用户下所有的订单表查询出来
// {
// Console.WriteLine(userInfo.UName+ " " +orderInfo.ID + " " + orderInfo.Content);
// }
//}
#endregion