使用Lazy<T>实现对客户订单的延迟加载"延迟加载"是指在需要的时候再加载数据。比如获得一个Customer信息,并不会把该Customer的Orders信息一下加载出来,当需要显示Orders的时候再加载。简单来说,就是按需加载。使用"延迟加载"的好处是减少应用程序响应时间,降低内存消耗,避免不必要的数据库交互。
□ 即时加载
创建Order类和Customer类,Customer中维护着Order的一个集合,在Customer的构造函数中给Order集合赋值。即,只要创建Customer实例,就会加载该Customer的所有Order。
关于Customer和Order类。
public class Customer
{
PRivate List<Order> _orders = null;
public List<Order> Orders
{
get { return _orders; }
}
private string _customerName;
public string CustomerName
{
get { return _customerName; }
set { CustomerName = value; }
}
public Customer()
{
_customerName = "darren";
_orders = LoadOrders();
}
private List<Order> LoadOrders()
{
List<Order> result = new List<Order>();
Order o = new Order();
o.OrderNumber = "001";
result.Add(o);
o = new Order();
o.OrderNumber = "002";
result.Add(o);
return result;
}
}
public class Order
{
private string _orderNumber;
public string OrderNumber
{