EntityCollection<TEntity>.Attach Metoda

Definicja

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.

Przeciążenia

Attach(IEnumerable<TEntity>)

Definiuje relacje między obiektem a kolekcją powiązanych obiektów w kontekście obiektu.

Attach(TEntity)

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.

Attach(IEnumerable<TEntity>)

Definiuje relacje między obiektem a kolekcją powiązanych obiektów w kontekście obiektu.

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))

Parametry

entities
IEnumerable<TEntity>

Kolekcja obiektów w kontekście obiektu, które są powiązane z obiektem źródłowym.

Wyjątki

entities kolekcja to null.

Obiekt źródłowy lub obiekt w kolekcji entities jest lub nie jest null w Unchanged stanie lub Modified .

-lub-

Nie można zdefiniować relacji na podstawie metadanych EDM. Może się to zdarzyć, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.

Uwagi

Metoda Attach służy do definiowania relacji między obiektem a kolekcją powiązanych obiektów, gdy zarówno obiekt źródłowy, jak i kolekcja powiązanych obiektów już istnieją w kontekście obiektu. Aby dołączyć obiekt lub graf obiektu, w którym relacje są już zdefiniowane, wywołaj metodę Attach w obiekcie ObjectContext. Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w obiekcie EntityCollection<TEntity>. Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.

Jeśli kolekcja jest już wypełniona lub częściowo wypełniona, Attach metoda scala istniejące jednostki z daną jednostką. Podane jednostki nie są zakładane jako kompletny zestaw powiązanych jednostek.

Wszystkie przekazane jednostki muszą być w Unchanged stanie lub Modified . Obiekty w Deleted stanie są dozwolone tylko wtedy, gdy menedżer stanu już śledzi wystąpienie relacji.

Dotyczy

Attach(TEntity)

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.

public:
 void Attach(TEntity entity);
public void Attach (TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)

Parametry

entity
TEntity

Obiekt, który jest dołączony.

Wyjątki

Gdy wartość entity to null.

entity Gdy nie można powiązać obiektu źródłowego. Może się to zdarzyć, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.

-lub-

Gdy obiekt jest lub nie jest null w stanie lub jest w Unchanged stanie lub Modified .

Przykłady

Ten przykład jest oparty na modelu Adventure Works Sales Model. Aby uruchomić kod w tym przykładzie, musisz już dodać model AdventureWorks Sales Model do projektu i skonfigurować projekt do korzystania z platformy Entity Framework. Aby to zrobić, wykonaj procedury opisane w temacie Instrukcje: Ręczne konfigurowanie projektu entity Framework i instrukcje: Ręczne definiowanie modelu i mapowania plików.

Ten przykład dołącza kolekcję odłączonych SalesOrderDetail obiektów i odłączonego SalesOrderHeader obiektu do kontekstu obiektu, a następnie definiuje relacje między SalesOrderHeader obiektem a każdym SalesOrderDetail obiektem.

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);
    }
}

Uwagi

Metoda Attach służy do definiowania relacji między dwoma obiektami, gdy oba obiekty już istnieją w kontekście obiektu. Aby dołączyć obiekt lub graf obiektu, w którym relacje są już zdefiniowane, wywołaj metodę Attach w obiekcie ObjectContext. Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w obiekcie EntityCollection<TEntity>. Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.

EntityCollection<TEntity> Jeśli obiekt został już załadowany, Attach metoda scala obiekt wraz z istniejącymi obiektami w obiekcie EntityCollection<TEntity>.

Dołączony obiekt nie jest zakładany jako kompletny zestaw powiązanych obiektów jednostki.

Obiekt skojarzony z tym EntityCollection<TEntity> obiektem i wszystkie dołączone do niego obiekty muszą być w Unchanged stanie lub Modified .

Obiekty w Deleted stanie mogą być dołączone tylko wtedy, gdy ObjectStateManager obiekt już śledzi wystąpienie relacji.

Dotyczy