EntityCollection<TEntity>.Attach Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce una relazione tra due oggetti collegati in un contesto di oggetto.
Overload
| Nome | Descrizione |
|---|---|
| Attach(IEnumerable<TEntity>) |
Definisce le relazioni tra un oggetto e una raccolta di oggetti correlati in un contesto oggetto. |
| Attach(TEntity) |
Definisce una relazione tra due oggetti collegati in un contesto di oggetto. |
Attach(IEnumerable<TEntity>)
Definisce le relazioni tra un oggetto e una raccolta di oggetti correlati in un contesto oggetto.
public:
void Attach(System::Collections::Generic::IEnumerable<TEntity> ^ entities);
public void Attach(System.Collections.Generic.IEnumerable<TEntity> entities);
override this.Attach : seq<'Entity (requires 'Entity : null and 'Entity :> System.Data.Objects.DataClasses.IEntityWithRelationships)> -> unit
override this.Attach : seq<'Entity (requires 'Entity : null)> -> unit
Public Sub Attach (entities As IEnumerable(Of TEntity))
Parametri
- entities
- IEnumerable<TEntity>
Raccolta di oggetti nel contesto dell'oggetto correlato all'oggetto di origine.
Eccezioni
entities collection è null.
L'oggetto di origine o un oggetto nell'insieme entities è null o non è in Unchanged uno stato o Modified .
oppure
La relazione non può essere definita in base ai metadati EDM. Ciò può verificarsi quando l'associazione nello schema concettuale non supporta una relazione tra i due tipi.
Commenti
Il Attach metodo viene utilizzato per definire relazioni tra un oggetto e una raccolta di oggetti correlati quando sia l'oggetto di origine che la raccolta di oggetti correlati esistono già nel contesto dell'oggetto. Per associare un oggetto o un oggetto grafico in cui le relazioni sono già definite, chiamare il Attach metodo su ObjectContext. Per creare un nuovo oggetto correlato all'oggetto di origine, chiamare il Add metodo su EntityCollection<TEntity>. Per altre informazioni, vedere Collegamento e scollegamento di oggetti.
Se la raccolta è già riempita o parzialmente compilata, il Attach metodo unisce le entità esistenti con le entità indicate. Si presuppone che le entità indicate siano il set completo di entità correlate.
Tutte le entità passate devono trovarsi nello Unchanged stato o Modified . Gli oggetti nello Deleted stato sono consentiti solo quando il gestore di stato sta già monitorando l'istanza della relazione.
Si applica a
Attach(TEntity)
Definisce una relazione tra due oggetti collegati in un contesto di oggetto.
public:
void Attach(TEntity entity);
public void Attach(TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)
Parametri
- entity
- TEntity
Oggetto associato.
Eccezioni
Quando è entitynull.
Quando non entity può essere correlato all'oggetto di origine. Ciò può verificarsi quando l'associazione nello schema concettuale non supporta una relazione tra i due tipi.
oppure
Quando uno degli oggetti è null o non è in Unchanged uno stato o Modified .
Esempio
Questo esempio è basato sul modello Adventure Works Sales. Per eseguire il codice in questo esempio, è necessario aver già aggiunto il modello AdventureWorks Sales al progetto e configurato il progetto per l'uso di Entity Framework. A tale scopo, completare le procedure in Come: Configurare manualmente entity Framework Project e Come: Definire manualmente i file di modello e mapping.
In questo esempio viene associata una raccolta di oggetti scollegati SalesOrderDetail e un oggetto scollegato SalesOrderHeader a un contesto oggetto e quindi vengono definite le relazioni tra l'oggetto SalesOrderHeader e ogni SalesOrderDetail oggetto.
private static void AttachRelatedObjects(
ObjectContext currentContext,
SalesOrderHeader detachedOrder,
List<SalesOrderDetail> detachedItems)
{
// 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.SalesOrderDetails.Attach(item);
}
}
Commenti
Il Attach metodo viene utilizzato per definire relazioni tra due oggetti quando entrambi gli oggetti esistono già nel contesto dell'oggetto. Per associare un oggetto o un oggetto grafico in cui le relazioni sono già definite, chiamare il Attach metodo su ObjectContext. Per creare un nuovo oggetto correlato all'oggetto di origine, chiamare il Add metodo su EntityCollection<TEntity>. Per altre informazioni, vedere Collegamento e scollegamento di oggetti.
Se l'oggetto EntityCollection<TEntity> contiene già oggetti caricati, il Attach metodo unisce l'oggetto insieme agli oggetti esistenti in EntityCollection<TEntity>.
Si presuppone che l'oggetto associato non sia il set completo di oggetti entità correlati.
L'oggetto associato a questo EntityCollection<TEntity> oggetto e a tutti gli oggetti collegati deve trovarsi in uno Unchanged stato o Modified .
Gli oggetti nello Deleted stato possono essere collegati solo quando è ObjectStateManager già in corso il rilevamento dell'istanza della relazione.