Logo UGIdotNET

Impostare il fetch plan con Entity Framework

Poichè non dispone di lazy load e non carica, per default, le proprietà di tipo "entity", Entity Framework 1.0 rende pressochè indispensabile impostare il fetch plan. Si supponga di avere una classe Order che esponga una proprietà Items costituita da una lista di oggetti di tipo OrderItem; il seguente codice imposta il fetch plan in modo da restituire l'elenco di tutti gli ordini valorizzandone gli elementi aggregati:

ObjectQuery<Order> query = domain.OrderSet.Include("Items");
IList<Order> orders = (from o in query select o).ToList();

In alternativa, è possibile procedere ad un caricamento imperativo; si supponga essere theOrder una istanza della classe Order, è possibile popolare la lista degli elementi nel seguente modo:

if (!theOrder.Items.IsLoaded)
{
   theOrder.Items.Load();
}

Technorati tags: 
Autore: Andrea Saltarello
Data: 30 novembre 2008
Ultimo aggiornamento: 30 novembre 2008
Categorie:  Data Access
Tag:  entity framework linq

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185