EntityCollection<TEntity>.Attach Metoda

Definicja

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.Defines a relationship between two attached objects in an object context.

Przeciążenia

Attach(IEnumerable<TEntity>)

Definiuje relacje między obiektem a kolekcją obiektów pokrewnych w kontekście obiektu.Defines relationships between an object and a collection of related objects in an object context.

Attach(TEntity)

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.Defines a relationship between two attached objects in an object context.

Attach(IEnumerable<TEntity>)

Definiuje relacje między obiektem a kolekcją obiektów pokrewnych w kontekście obiektu.Defines relationships between an object and a collection of related objects in an object context.

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.Collection of objects in the object context that are related to the source object.

Wyjątki

entities Kolekcja jest null .entities collection is null.

Obiekt źródłowy lub obiekt w entities kolekcji jest null lub nie jest w Unchanged Modified stanie.The source object or an object in the entities collection is null or is not in an Unchanged or Modified state.

-lub--or-

Nie można zdefiniować relacji na podstawie metadanych modelu firmy Adventure Works Sales Model EDM.The relationship cannot be defined based on the Adventure Works Sales Model EDM metadata. Taka sytuacja może wystąpić, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między tymi dwoma typami.This can occur when the association in the conceptual schema does not support a relationship between the two types.

Uwagi

AttachMetoda jest używana 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 istnieją już w kontekście obiektu.The Attach method is used to define relationships between an object and a collection of related objects when both the source object and the collection of related objects already exist in the object context. Aby dołączyć obiekt lub Graf obiektu, gdzie relacje są już zdefiniowane, wywołaj Attach metodę w ObjectContext .To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Aby utworzyć nowy obiekt, który jest powiązany z obiektem źródłowym, wywołaj Add metodę w EntityCollection<TEntity> .To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Aby uzyskać więcej informacji, zobacz dołączanie i odłączanie obiektów.For more information, see Attaching and Detaching Objects.

Jeśli kolekcja jest już wypełniana lub częściowo wypełniana, Attach Metoda Scala istniejące jednostki z podanymi jednostkami.If the collection is already filled or partially filled, the Attach method merges existing entities with the given entities. Nie przyjmuje się, że nie jest to kompletny zestaw powiązanych jednostek.The given entities are not assumed to be the complete set of related entities.

Wszystkie przekazanie jednostek musi być w Unchanged stanie lub Modified .All entities passed in must be in the Unchanged or Modified state. Obiekty w Deleted stanie są dozwolone tylko wtedy, gdy Menedżer stanu już śledzi wystąpienie relacji.Objects in the Deleted state are only allowed when the state manager is already tracking the relationship instance.

Dotyczy

Attach(TEntity)

Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.Defines a relationship between two attached objects in an object context.

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łączany.The object being attached.

Wyjątki

Gdy entity ma wartość null .When the entity is null.

Gdy entity nie można jej powiązać z obiektem źródłowym.When the entity cannot be related to the source object. Taka sytuacja może wystąpić, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między tymi dwoma typami.This can occur when the association in the conceptual schema does not support a relationship between the two types.

-lub--or-

Gdy oba obiekty są null lub nie są w Unchanged Modified stanie.When either object is null or is not in an Unchanged or Modified state.

Przykłady

Ten przykład jest oparty na modelu sprzedaży Adventure Works.This example is based on the Adventure Works Sales Model. Aby uruchomić kod w tym przykładzie, musisz już dodać model sprzedaży AdventureWorks do projektu i skonfigurować projekt do korzystania z Entity Framework.To run the code in this example, you must have already added the AdventureWorks Sales Model to your project and configured your project to use the Entity Framework. Aby to zrobić, wykonaj procedury opisane w temacie jak: ręcznie skonfigurować projekt Entity Framework i instrukcje: ręcznie zdefiniować model i pliki mapowania.To do this, complete the procedures in How to: Manually Configure an Entity Framework Project and How to: Manually Define the Model and Mapping Files.

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.This example attaches a collection of detached SalesOrderDetail objects and a detached SalesOrderHeader object to an object context, and then defines the relationships between the SalesOrderHeader object and each SalesOrderDetail object.

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);
    }
}
Private Shared Sub AttachRelatedObjects(ByVal currentContext As ObjectContext, ByVal detachedOrder As SalesOrderHeader, ByVal detachedItems As List(Of SalesOrderDetail))
    ' 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. 
    For Each item As SalesOrderDetail In detachedItems
        currentContext.Attach(item)
        detachedOrder.SalesOrderDetails.Attach(item)
    Next
End Sub

Uwagi

AttachMetoda jest używana do definiowania relacji między dwoma obiektami, gdy oba obiekty już istnieją w kontekście obiektu.The Attach method is used to define relationships between two objects when both objects already exist in the object context. Aby dołączyć obiekt lub Graf obiektu, gdzie relacje są już zdefiniowane, wywołaj Attach metodę w ObjectContext .To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Aby utworzyć nowy obiekt, który jest powiązany z obiektem źródłowym, wywołaj Add metodę w EntityCollection<TEntity> .To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Aby uzyskać więcej informacji, zobacz dołączanie i odłączanie obiektów.For more information, see Attaching and Detaching Objects.

Jeśli EntityCollection<TEntity> masz już załadowane obiekty, Attach Metoda Scala obiekt wraz z istniejącymi obiektami w obiekcie EntityCollection<TEntity> .If the EntityCollection<TEntity> already has loaded objects, the Attach method merges the object together with the existing objects in the EntityCollection<TEntity>.

Załączony obiekt nie jest przyjęty jako kompletny zestaw powiązanych obiektów jednostek.The attached object is not assumed to be the complete set of related entity objects.

Obiekt skojarzony z tym EntityCollection<TEntity> i wszystkie obiekty, które są do niego dołączone, muszą być Unchanged w Modified stanie lub.The object associated with this EntityCollection<TEntity> and all objects being attached to it must be in an Unchanged or Modified state.

Obiekty w Deleted stanie mogą być dołączane tylko wtedy, gdy ObjectStateManager jest już śledzone wystąpienie relacji.Objects in the Deleted state can only be attached when the ObjectStateManager is already tracking the relationship instance.

Dotyczy