Procédure : charger explicitement des entités POCO (Entity Framework)
Les exemples de cette rubrique vous indiquent comment charger explicitement des objets connexes à l'aide de la méthode LoadProperty sur le ObjectContext. Pour obtenir un exemple d'utilisation du chargement différé pour accéder aux objets connexes, consultez Procédure : utiliser le chargement différé pour charger des objets connexes (Entity Framework). La méthode LoadProperty peut être utilisée avec les entités POCO et avec les entités dérivées de EntityObject.
Les exemples de cette rubrique utilisent les classes de données POCO définies dans Procédure : définir des entités POCO (Entity Framework), la classe AdventureWorksEntities (dérivée de ObjectContext) créée dans Procédure: définir un contexte d'objet personnalisé (Entity Framework), et un modèle de données AdventureWorks défini dans Procédure : personnaliser des fichiers de modèle et de mappage pour utiliser des objets personnalisés (Entity Framework).
Exemple
Cet exemple retourne les cinq premiers objets Order
et appelle la méthode LoadProperty pour charger explicitement les objets LineItem
connexes pour chaque Order
.
Using context As New POCOAdventureWorksEntities()
Try
' Disable lazy loading.
context.ContextOptions.LazyLoadingEnabled = False
' Get the first five orders.
For Each order As Order In context.Orders.Take(5)
' Because LazyLoadingEnabled is set to false,
' we need to explicitly load the related line items for the order.
context.LoadProperty(order, "LineItems")
Console.WriteLine(String.Format("PO Number: {0}", order.ExtendedInfo.PurchaseOrderNumber))
Console.WriteLine(String.Format("Order Date: {0}", order.OrderDate.ToString()))
Console.WriteLine("Order items:")
For Each item As LineItem In order.LineItems
Console.WriteLine(String.Format("Product: {0} " & "Quantity: {1}", item.ProductID, item.OrderQty))
Next
Next
Catch ex As InvalidOperationException
Console.WriteLine(ex.Message)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
using (POCOAdventureWorksEntities context =
new POCOAdventureWorksEntities())
{
try
{
// Disable lazy loading.
context.ContextOptions.LazyLoadingEnabled = false;
// Get the first five orders.
foreach (Order order in context.Orders.Take(5))
{
// Because LazyLoadingEnabled is set to false,
// we need to explicitly load the related line items for the order.
context.LoadProperty(order, "LineItems");
Console.WriteLine(String.Format("PO Number: {0}",
order.ExtendedInfo.PurchaseOrderNumber));
Console.WriteLine(String.Format("Order Date: {0}",
order.OrderDate.ToString()));
Console.WriteLine("Order items:");
foreach (LineItem item in order.LineItems)
{
Console.WriteLine(String.Format("Product: {0} "
+ "Quantity: {1}", item.ProductID,
item.OrderQty));
}
}
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Voir aussi
Concepts
Chargement d'entités POCO connexes (Entity Framework)
Personnalisation des objets (Entity Framework)
Utilisation d'entités POCO (Entity Framework)