EntityCollection<TEntity>.Attach Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar en relation mellan två kopplade objekt i en objektkontext.
Överlagringar
| Name | Description |
|---|---|
| Attach(IEnumerable<TEntity>) |
Definierar relationer mellan ett objekt och en samling relaterade objekt i en objektkontext. |
| Attach(TEntity) |
Definierar en relation mellan två kopplade objekt i en objektkontext. |
Attach(IEnumerable<TEntity>)
Definierar relationer mellan ett objekt och en samling relaterade objekt i en 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))
Parametrar
- entities
- IEnumerable<TEntity>
Samling objekt i objektkontexten som är relaterade till källobjektet.
Undantag
entities samlingen är null.
Källobjektet eller ett objekt i entities samlingen är null eller är inte i ett Unchanged tillstånd Modified .
-eller-
Relationen kan inte definieras baserat på EDM-metadata. Detta kan inträffa när associationen i det konceptuella schemat inte stöder en relation mellan de två typerna.
Kommentarer
Metoden Attach används för att definiera relationer mellan ett objekt och en samling relaterade objekt när både källobjektet och samlingen av relaterade objekt redan finns i objektkontexten. Om du vill bifoga ett objekt eller ett objektdiagram där relationerna redan har definierats anropar Attach du metoden på ObjectContext. Om du vill skapa ett nytt objekt som är relaterat till källobjektet anropar Add du metoden på EntityCollection<TEntity>. Mer information finns i Koppla till och koppla från objekt.
Om samlingen redan är fylld eller delvis fylld Attach sammanfogar metoden befintliga entiteter med de angivna entiteterna. De angivna entiteterna antas inte vara den fullständiga uppsättningen relaterade entiteter.
Alla entiteter som skickas in måste vara i Unchanged tillståndet eller Modified . Objekt i tillståndet Deleted tillåts endast när tillståndshanteraren redan spårar relationsinstansen.
Gäller för
Attach(TEntity)
Definierar en relation mellan två kopplade objekt i en objektkontext.
public:
void Attach(TEntity entity);
public void Attach(TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)
Parametrar
- entity
- TEntity
Objektet som bifogas.
Undantag
entity När är null.
När det entity inte kan vara relaterat till källobjektet. Detta kan inträffa när associationen i det konceptuella schemat inte stöder en relation mellan de två typerna.
-eller-
När något av objekten är null eller inte är i ett Unchanged eller-tillstånd Modified .
Exempel
Det här exemplet baseras på Adventure Works försäljningsmodell. Om du vill köra koden i det här exemplet måste du redan ha lagt till AdventureWorks Sales Model i projektet och konfigurerat projektet för att använda Entity Framework. Det gör du genom att utföra procedurerna i Så här: Konfigurera ett Entity Framework-Project och Så här: Definiera modell- och mappningsfiler manuellt.
Det här exemplet kopplar en samling frånkopplade SalesOrderDetail objekt och ett frånkopplat SalesOrderHeader objekt till en objektkontext och definierar sedan relationerna mellan SalesOrderHeader objektet och varje SalesOrderDetail objekt.
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);
}
}
Kommentarer
Metoden Attach används för att definiera relationer mellan två objekt när båda objekten redan finns i objektkontexten. Om du vill bifoga ett objekt eller ett objektdiagram där relationerna redan har definierats anropar Attach du metoden på ObjectContext. Om du vill skapa ett nytt objekt som är relaterat till källobjektet anropar Add du metoden på EntityCollection<TEntity>. Mer information finns i Koppla till och koppla från objekt.
Om objekten EntityCollection<TEntity> redan har lästs Attach in sammanfogas objektet med de befintliga objekten EntityCollection<TEntity>i .
Det bifogade objektet antas inte vara den fullständiga uppsättningen relaterade entitetsobjekt.
Objektet som är associerat med detta EntityCollection<TEntity> och alla objekt som kopplas till det måste vara i ett Unchanged eller-tillstånd Modified .
Objekt i tillståndet Deleted kan bara kopplas när ObjectStateManager den redan spårar relationsinstansen.