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 экземпляр связи уже отслеживается.