Related Object's Lazy-load

In DObject O/R Mapping persistence layer, in order to improve the performance, all relation objects include parent objects and sub object-sets are dealt with in the way of lazy-load as follows:

l  Relation parent object's lazy-load is as follows:

var

  order : IOrder;

  customer : ICustomer;

begin

  order := TOrder.GetByOrderID(ObjectManager, _orderId);

  // ...

  // order.Customer has not been loaded

  // ...

  customer := order.Customer; // order.Customer is loaded now

end;

l  Relation sub object-set's lazy-load is as follows:

var

  order : IOrder;

  details : IObjectSet;

  detail : IOrderDetail;

  i : integer;

begin

  order := TOrder.GetByOrderID(ObjectManager, _orderId);

  // ...

  // order.OrderDetails has not been loaded

  // ...

  details := order.OrderDetails; // order.OrderDetails is loaded now

  for I := 0 to details.Count - 1 do

  begin

    detail := details[i] as TOrderDetail;

    // ...

  end;

end;

 

Related Topics

Lazy-load and Caching