Aracılığıyla paylaş


EntityCollection<TEntity>.Attach Yöntem

Tanım

Nesne bağlamındaki iki ekli nesne arasındaki ilişkiyi tanımlar.

Aşırı Yüklemeler

Attach(IEnumerable<TEntity>)

Bir nesne ile nesne bağlamındaki ilgili nesneler koleksiyonu arasındaki ilişkileri tanımlar.

Attach(TEntity)

Nesne bağlamındaki iki ekli nesne arasındaki ilişkiyi tanımlar.

Attach(IEnumerable<TEntity>)

Bir nesne ile nesne bağlamındaki ilgili nesneler koleksiyonu arasındaki ilişkileri tanımlar.

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

Parametreler

entities
IEnumerable<TEntity>

Kaynak nesneyle ilgili nesne bağlamındaki nesnelerin koleksiyonu.

Özel durumlar

entities koleksiyonu şeklindedir null.

Kaynak nesne veya koleksiyondaki entitiesnull bir nesne veya Modified durumunda veya değilUnchanged.

-veya-

İlişki, EDM meta verilerine göre tanımlanamaz. Kavramsal şemadaki ilişkilendirme iki tür arasındaki ilişkiyi desteklemediğinde bu durum oluşabilir.

Açıklamalar

yöntemi Attach , hem kaynak nesne hem de ilgili nesne koleksiyonu nesne bağlamında zaten mevcut olduğunda, bir nesne ile ilgili nesneler koleksiyonu arasındaki ilişkileri tanımlamak için kullanılır. İlişkilerin zaten tanımlandığı bir nesne veya nesne grafı eklemek için üzerinde yöntemini çağırın AttachObjectContext. Kaynak nesneyle ilgili yeni bir nesne oluşturmak için üzerinde yöntemini çağırın AddEntityCollection<TEntity>. Daha fazla bilgi için bkz. Nesneleri Ekleme ve Ayırma.

Koleksiyon zaten doldurulmuşsa veya kısmen doldurulmuşsa, Attach yöntemi mevcut varlıkları verilen varlıklarla birleştirir. Verilen varlıkların ilgili varlıkların tam kümesi olduğu varsayılmaz.

geçirilen tüm varlıklar veya Modified durumunda Unchanged olmalıdır. Durumdaki Deleted nesnelere yalnızca durum yöneticisi zaten ilişki örneğini izlediğinde izin verilir.

Şunlara uygulanır

Attach(TEntity)

Nesne bağlamındaki iki ekli nesne arasındaki ilişkiyi tanımlar.

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

Parametreler

entity
TEntity

Eklenen nesne.

Özel durumlar

entity olduğundanull.

entity kaynak nesneyle ilişkilendirilemediğinde. Kavramsal şemadaki ilişkilendirme iki tür arasındaki ilişkiyi desteklemediğinde bu durum oluşabilir.

-veya-

Nesnelerden biri null veya durumunda olduğunda veya Modified değilseUnchanged.

Örnekler

Bu örnekte Adventure Works Satış Modeli temel alınmaktadır. Bu örnekte kodu çalıştırmak için AdventureWorks Satış Modeli'ni projenize zaten eklemiş ve projenizi Entity Framework kullanacak şekilde yapılandırmış olmanız gerekir. Bunu yapmak için , Nasıl yapılır: Entity Framework Projesini El ile Yapılandırma ve Nasıl Yapılır: Model ve Eşleme Dosyalarını El ile Tanımlama içindeki yordamları tamamlayın.

Bu örnek, bir nesne bağlamı için bir ayrılmış SalesOrderDetail nesneler ve bir ayrılmış SalesOrderHeader nesne koleksiyonu ekler ve sonra nesne ile her SalesOrderDetail nesne arasındaki SalesOrderHeader ilişkileri tanımlar.

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

Açıklamalar

yöntemi Attach , her iki nesne nesne bağlamında zaten mevcut olduğunda iki nesne arasındaki ilişkileri tanımlamak için kullanılır. İlişkilerin zaten tanımlandığı bir nesne veya nesne grafı eklemek için üzerinde yöntemini çağırın AttachObjectContext. Kaynak nesneyle ilgili yeni bir nesne oluşturmak için üzerinde yöntemini çağırın AddEntityCollection<TEntity>. Daha fazla bilgi için bkz. Nesneleri Ekleme ve Ayırma.

EntityCollection<TEntity> zaten yüklü nesnelere sahipse yöntemi, Attach nesnesini içindeki EntityCollection<TEntity>mevcut nesnelerle birleştirir.

Eklenen nesnenin ilgili varlık nesnelerinin tam kümesi olduğu varsayılmaz.

Bununla EntityCollection<TEntity> ilişkili nesne ve buna eklenen tüm nesneler veya UnchangedModified durumunda olmalıdır.

Durumundaki Deleted nesneler yalnızca ilişki örneğini zaten izlediğinde ObjectStateManager eklenebilir.

Şunlara uygulanır