Тіл

EntityCollection<TEntity>.Attach Метод

Определение

Определяет связь между двумя присоединенными объектами в контексте объекта.

Перегрузки

Имя Описание
Attach(IEnumerable<TEntity>)

Определяет связи между объектом и коллекцией связанных объектов в контексте объекта.

Attach(TEntity)

Определяет связь между двумя присоединенными объектами в контексте объекта.

Attach(IEnumerable<TEntity>)

Определяет связи между объектом и коллекцией связанных объектов в контексте объекта.

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

Параметры

entities
IEnumerable<TEntity>

Коллекция объектов в контексте объекта, связанных с исходным объектом.

Исключения

entities nullколлекция .

Исходный объект или объект в entities коллекции null находится или не находится в Unchanged состоянии.Modified

–или–

Связь не может быть определена на основе метаданных EDM. Это может произойти, если связь в концептуальной схеме не поддерживает связь между двумя типами.

Комментарии

Метод Attach используется для определения связей между объектом и коллекцией связанных объектов, когда исходный объект и коллекция связанных объектов уже существуют в контексте объекта. Чтобы подключить объект или граф объектов, в котором уже определены связи, вызовите Attach метод в объекте ObjectContext. Чтобы создать новый объект, связанный с исходным объектом, вызовите Add метод в объекте EntityCollection<TEntity>. Дополнительные сведения см. в разделе "Присоединение и отключение объектов".

Если коллекция уже заполнена или частично заполнена, Attach метод объединяет существующие сущности с заданными сущностями. Указанные сущности не считаются полным набором связанных сущностей.

Все сущности, переданные в ней Unchanged , должны находиться в состоянии или Modified состоянии. Объекты в Deleted состоянии разрешены только в том случае, если диспетчер состояний уже отслеживает экземпляр связи.

Применяется к

Attach(TEntity)

Определяет связь между двумя присоединенными объектами в контексте объекта.

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

Параметры

entity
TEntity

Присоединенный объект.

Исключения

Если значение entity равно null.

entity Если не удается подключиться к исходному объекту. Это может произойти, если связь в концептуальной схеме не поддерживает связь между двумя типами.

–или–

Если объект находится или не находится null в состоянии или Unchanged находится в Modified состоянии.

Примеры

Этот пример основан на модели Adventure Works Sales. Чтобы запустить код в этом примере, необходимо добавить модель продаж AdventureWorks в проект и настроить проект для использования Entity Framework. Для этого выполните процедуры в How to: Вручную настройте entity Framework Project и How to: Manually Define the Model and Mapping Files.

Этот пример присоединяет коллекцию отсоединяемых SalesOrderDetail объектов и отсоединяемый SalesOrderHeader объект к контексту объекта, а затем определяет связи между SalesOrderHeader объектом и каждым SalesOrderDetail объектом.

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

Комментарии

Метод Attach используется для определения связей между двумя объектами, когда оба объекта уже существуют в контексте объекта. Чтобы подключить объект или граф объектов, в котором уже определены связи, вызовите Attach метод в объекте ObjectContext. Чтобы создать новый объект, связанный с исходным объектом, вызовите Add метод в объекте EntityCollection<TEntity>. Дополнительные сведения см. в разделе "Присоединение и отключение объектов".

EntityCollection<TEntity> Если у уже загруженных объектов, Attach метод объединяет объект вместе с существующими объектами в объектеEntityCollection<TEntity>.

Присоединенный объект не считается полным набором связанных объектов сущностей.

Объект, связанный с этим, и все объекты, присоединенные к нему EntityCollection<TEntity> , должны находиться в Unchanged состоянии или Modified состоянии.

Объекты в Deleted состоянии могут быть присоединены только в том случае, если ObjectStateManager экземпляр связи уже отслеживается.

Применяется к