Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In den Beispielen in diesem Thema wird gezeigt, wie verknüpfte Objekte explizit mit der LoadProperty-Methode von ObjectContext geladen werden. Ein Beispiel dafür, wie mit Lazy Loading auf verknüpfte Objekte zugegriffen wird, finden Sie unter Gewusst wie: Laden von verknüpften Objekten mithilfe von Lazy Loading (Entity Framework). Die LoadProperty-Methode kann mit POCO-Entitäten und Entitäten verwendet werden, die sich von EntityObject ableiten.
Die Beispiele in diesem Thema verwenden die POCO-Datenklassen, die in Gewusst wie: Definieren von POCO-Entitäten (Entity Framework) definiert werden, die AdventureWorksEntities-Klasse (abgeleitet von ObjectContext), die in Gewusst wie: Definieren eines benutzerdefinierten Objektkontexts (Entity Framework) erstellt wird, und ein auf AdventureWorks basierendes Datenmodell, das in Gewusst wie: Anpassen von Modellierungs- und Zuordnungsdateien zur Verwendung mit benutzerdefinierten Objekten (Entity Framework) definiert wird.
Beispiel
In diesem Beispiel werden die ersten fünf Order-Objekte zurückgegeben und die LoadProperty-Methode wird aufgerufen, um die verwandten LineItem-Objekte für jede Order explizit zu laden.
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);
}
}
Siehe auch
Konzepte
Laden von verknüpften POCO-Objekten (Entity Framework)
Anpassen von Objekten (Entity Framework)
Arbeiten mit POCO-Entitäten (Entity Framework)