Finding Object

In DObject O/R Mapping persistence layer's object-set, the operation of finding object is similar to getting sub-set except that what it returns is only an object, as follows:

l  Filter a single field:

var

  orders : IObjectSet;

  order: IOrder;

begin

  orders := ObjectManager.GetObjectSet(NW.Order);

  // ...

 

  order := orders.Find(NW.Order.EmployeeID, 1) as TOrder;

end;

l  Filter multi-field:

var

  orders : IObjectSet;

  filter : IOrder;

  order  : IOrder;

begin

  orders := ObjectManager.GetObjectSet(NW.Order);

  // ...

 

  filter := TOrder.Create(nil);

  filter.EmployeeID := 2;

  filter.ShipVia := 1;

 

  order := orders.Find(filter) as TOrder;

end;

l  Using OQL:

var

  orders : IObjectSet;

  order: IOrder;

begin

  orders := ObjectManager.GetObjectSet(NW.Order);

  // ...

 

  order := orders.Find( OQL.Criteria(NW.Order.EmployeeID).EQ(1) ) as TOrder;

end;

Note: the OQL here doesn't support multi-table's Join, Sub-query, Case, Like and function.

 

Related Topics

Using DObject Object-set