Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento vengono forniti esempi di connessione di oggetti correlati a un contesto dell'oggetto. Per ulteriori informazioni, vedere Connessione di oggetti (Entity Framework). Questa procedura viene utilizzata per ricostruire un grafico di oggetti serializzato utilizzando la serializzazione XML.
L'esempio incluso in questo argomento è basato sul modello Sales di AdventureWorks. Per eseguire il codice incluso in questo esempio, è necessario avere già aggiunto il modello Sales di AdventureWorks al progetto e avere configurato il progetto per l'utilizzo di Entity Framework. A tale scopo, completare le procedure descritte in Procedura: configurare manualmente un progetto di Entity Framework e Procedura: definire manualmente un modello EDM (Entity Framework).
Esempio
In questo esempio un insieme di oggetti SalesOrderDetail disconnessi e un oggetto SalesOrderHeader disconnesso vengono connessi a un contesto dell'oggetto, quindi vengono definite le relazioni tra l'oggetto SalesOrderHeader e ogni oggetto SalesOrderDetail.
Private Shared Sub AttachRelatedObjects( _
ByVal currentContext As ObjectContext, _
ByVal detachedOrder As SalesOrderHeader, _
ByVal detachedItems As List(Of SalesOrderDetail))
Try
' Attach the root detachedOrder object to the supplied context.
currentContext.Attach(detachedOrder)
' Attach each detachedItem to the context, and define each relationship
' by attaching the attached SalesOrderDetail object to the EntityCollection on
' the SalesOrderDetail navigation property of the now attached detachedOrder.
For Each item As SalesOrderDetail In detachedItems
currentContext.Attach(item)
detachedOrder.SalesOrderDetail.Attach(item)
Next
Catch ex As InvalidOperationException
Console.WriteLine(ex.ToString())
End Try
End Sub
private static void AttachRelatedObjects(
ObjectContext currentContext,
SalesOrderHeader detachedOrder,
List<SalesOrderDetail> detachedItems)
{
try
{
// Attach the root detachedOrder object to the supplied context.
currentContext.Attach(detachedOrder);
// Attach each detachedItem to the context, and define each relationship
// by attaching the attached SalesOrderDetail object to the EntityCollection on
// the SalesOrderDetail navigation property of the now attached detachedOrder.
foreach (SalesOrderDetail item in detachedItems)
{
currentContext.Attach(item);
detachedOrder.SalesOrderDetail.Attach(item);
}
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.GetType().ToString() + ": " + ex.ToString());
}
}
In questo esempio un insieme di oggetti SalesOrderDetail disconnessi viene aggiunto a un oggetto SalesOrderHeader disconnesso, quindi l'oggetto grafico viene connesso al contesto dell'oggetto.
Private Shared Sub AttachObjectGraph( _
ByVal currentContext As ObjectContext, _
ByVal detachedOrder As SalesOrderHeader, _
ByVal detachedItems As List(Of SalesOrderDetail))
Try
' Define the relationships by adding each SalesOrderDetail
' object in the detachedItems List<SalesOrderDetail> collection to the
' EntityCollection on the SalesOrderDetail navigation property of detachedOrder.
For Each item As SalesOrderDetail In detachedItems
detachedOrder.SalesOrderDetail.Add(item)
Next
' Attach the object graph to the supplied context.
currentContext.Attach(detachedOrder)
Catch ex As InvalidOperationException
Console.WriteLine(ex.ToString())
End Try
End Sub
private static void AttachObjectGraph(
ObjectContext currentContext,
SalesOrderHeader detachedOrder,
List<SalesOrderDetail> detachedItems)
{
try
{
// Define the relationships by adding each SalesOrderDetail
// object in the detachedItems List<SalesOrderDetail> collection to the
// EntityCollection on the SalesOrderDetail navigation property of detachedOrder.
foreach (SalesOrderDetail item in detachedItems)
{
detachedOrder.SalesOrderDetail.Add(item);
}
// Attach the object graph to the supplied context.
currentContext.Attach(detachedOrder);
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.GetType().ToString() + ": " + ex.ToString());
}
}
Vedere anche
Concetti
Serializzazione di oggetti (Entity Framework)
Servizi Web e Entity Data Model (scenari applicativi)
Altre risorse
Gestione del contesto dell'oggetto (Entity Framework)
Utilizzo di oggetti (attività di Entity Framework)