Udostępnij za pośrednictwem


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 entities kolekcji jest null lub nie znajduje się w Unchanged stanie lub Modified .

-lub-

Nie można zdefiniować relacji na podstawie metadanych EDM. Taka sytuacja może wystąpić, 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 ObjectContextobiekcie . Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w EntityCollection<TEntity>obiekcie . 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ą. Nie zakłada się, że podane jednostki są kompletnym zestawem 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 śledzi już 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

Dołączany obiekt.

Wyjątki

Gdy wartość to entitynull.

entity Gdy obiekt źródłowy nie może być powiązany. Taka sytuacja może wystąpić, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.

-lub-

Jeśli obiekt jest null lub nie znajduje się 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 Do projektu i skonfigurować projekt do korzystania z programu Entity Framework. Aby to zrobić, wykonaj procedury opisane w temacie Instrukcje: Ręczne konfigurowanie projektu platformy Entity Framework i Instrukcje: Ręczne definiowanie modelu i plików mapowania.

W tym przykładzie dołączana jest kolekcja odłączonych SalesOrderDetail obiektów i odłączony SalesOrderHeader obiekt 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 ObjectContextobiekcie . Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w EntityCollection<TEntity>obiekcie . 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>.

Nie zakłada się, że dołączony obiekt jest kompletnym zestawem powiązanych obiektów jednostki.

Obiekt skojarzony z tym EntityCollection<TEntity> obiektem i wszystkimi obiektami dołączonymi do niego musi 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