EntityCollection<TEntity>.Attach Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert eine Beziehung zwischen zwei angefügten Objekten in einem Objektkontext.
Überlädt
| Name | Beschreibung |
|---|---|
| Attach(IEnumerable<TEntity>) |
Definiert Beziehungen zwischen einem Objekt und einer Auflistung verwandter Objekte in einem Objektkontext. |
| Attach(TEntity) |
Definiert eine Beziehung zwischen zwei angefügten Objekten in einem Objektkontext. |
Attach(IEnumerable<TEntity>)
Definiert Beziehungen zwischen einem Objekt und einer Auflistung verwandter Objekte in einem Objektkontext.
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))
Parameter
- entities
- IEnumerable<TEntity>
Auflistung von Objekten im Objektkontext, die mit dem Quellobjekt verknüpft sind.
Ausnahmen
entities -Auflistung ist null.
Das Quellobjekt oder ein Objekt in der entities Auflistung befindet null sich oder befindet sich nicht in einem oder Modified in einem Unchanged Zustand.
-oder-
Die Beziehung kann nicht basierend auf den EDM-Metadaten definiert werden. Dies kann auftreten, wenn die Zuordnung im konzeptionellen Schema keine Beziehung zwischen den beiden Typen unterstützt.
Hinweise
Die Attach Methode wird verwendet, um Beziehungen zwischen einem Objekt und einer Auflistung verwandter Objekte zu definieren, wenn sowohl das Quellobjekt als auch die Auflistung verwandter Objekte bereits im Objektkontext vorhanden sind. Rufen Sie die Attach Methode auf ObjectContext, um ein Objekt oder ein Objektdiagramm anzufügen, in dem die Beziehungen bereits definiert sind. Rufen Sie die Add Methode auf EntityCollection<TEntity>, um ein neues Objekt zu erstellen, das mit dem Quellobjekt verknüpft ist. Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten.
Wenn die Auflistung bereits ausgefüllt oder teilweise gefüllt ist, führt die Attach Methode vorhandene Entitäten mit den angegebenen Entitäten zusammen. Die angegebenen Entitäten werden nicht als vollständiger Satz verwandter Entitäten angenommen.
Alle übergebenen Entitäten müssen sich Unchanged im Zustand oder Modified im Zustand befinden. Objekte im Deleted Zustand sind nur zulässig, wenn der Status-Manager die Beziehungsinstanz bereits nachverfolgt.
Gilt für:
Attach(TEntity)
Definiert eine Beziehung zwischen zwei angefügten Objekten in einem Objektkontext.
public:
void Attach(TEntity entity);
public void Attach(TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)
Parameter
- entity
- TEntity
Das angefügte Objekt.
Ausnahmen
Wenn dies entity ist null.
Wenn das entity Quellobjekt nicht verknüpft werden kann. Dies kann auftreten, wenn die Zuordnung im konzeptionellen Schema keine Beziehung zwischen den beiden Typen unterstützt.
-oder-
Wenn sich ein Objekt null befindet oder sich nicht in einem Unchanged Oder Modified Zustand befindet.
Beispiele
Dieses Beispiel basiert auf dem Adventure Works-Vertriebsmodell. Um den Code in diesem Beispiel auszuführen, müssen Sie ihrem Projekt bereits das AdventureWorks Sales Model hinzugefügt und ihr Projekt so konfiguriert haben, dass es das Entity Framework verwendet. Führen Sie dazu die Verfahren in How to: Manually Configure an Entity Framework Project and How to: Manually Define the Model and Mapping Files.
In diesem Beispiel wird eine Auflistung von getrennten SalesOrderDetail Objekten und ein getrenntes SalesOrderHeader Objekt an einen Objektkontext angefügt, und anschließend werden die Beziehungen zwischen dem SalesOrderHeader Objekt und den einzelnen SalesOrderDetail Objekten definiert.
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);
}
}
Hinweise
Die Attach Methode wird verwendet, um Beziehungen zwischen zwei Objekten zu definieren, wenn beide Objekte bereits im Objektkontext vorhanden sind. Rufen Sie die Attach Methode auf ObjectContext, um ein Objekt oder ein Objektdiagramm anzufügen, in dem die Beziehungen bereits definiert sind. Rufen Sie die Add Methode auf EntityCollection<TEntity>, um ein neues Objekt zu erstellen, das mit dem Quellobjekt verknüpft ist. Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten.
Wenn die EntityCollection<TEntity> bereits geladenen Objekte vorhanden sind, führt die Attach Methode das Objekt zusammen mit den vorhandenen Objekten in der EntityCollection<TEntity>.
Das angefügte Objekt wird nicht als vollständiger Satz verwandter Entitätsobjekte angenommen.
Das diesem EntityCollection<TEntity> zugeordnete Objekt und alle Objekte, die an das Objekt angefügt werden, müssen sich in einem Unchanged oder Modified einem Zustand befinden.
Objekte im Deleted Zustand können nur angefügt werden, wenn die ObjectStateManager Beziehungsinstanz bereits nachverfolgt wird.