EntityCollection<TEntity>.Attach Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Nesne bağlamında ekli iki nesne arasındaki ilişkiyi tanımlar.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Attach(IEnumerable<TEntity>) |
Nesne bağlamındaki bir nesne ile ilgili nesne koleksiyonu arasındaki ilişkileri tanımlar. |
| Attach(TEntity) |
Nesne bağlamında ekli iki nesne arasındaki ilişkiyi tanımlar. |
Attach(IEnumerable<TEntity>)
Nesne bağlamındaki bir nesne ile ilgili nesne 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>
Nesne bağlamındaki ve kaynak nesneyle ilişkili nesnelerin koleksiyonu.
Özel durumlar
entities koleksiyonu şeklindedir null.
Kaynak nesne veya koleksiyondaki entitiesnull bir nesne ya Unchanged da Modified veya durumunda değil.
-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 nesnelerin 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. Nesnelerin Eklenmesi ve Ayrılması.
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ık kümesinin tamamı olduğu varsayılmaz.
geçirilen tüm varlıklar veya Unchanged durumunda Modified olmalıdır. Durumdaki nesnelere Deleted yalnızca durum yöneticisi zaten ilişki örneğini izlediğinde izin verilir.
Şunlara uygulanır
Attach(TEntity)
Nesne bağlamında ekli iki 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 null biri veya durumunda değilse UnchangedModified .
Örnekler
Bu örnek Adventure Works Satış Modeli'ni temel alır. Bu örnekteki 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,
Bu örnek, bir nesne bağlamı için ayrılmış SalesOrderDetail nesneler ve ayrılmış SalesOrderHeader bir nesne koleksiyonu ekler ve sonra nesne ile her SalesOrderHeader nesne arasındaki SalesOrderDetail 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 de 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. Nesnelerin Eklenmesi ve Ayrılması.
EntityCollection<TEntity> zaten yüklü nesneler varsa, Attach yöntemi 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 zaten ilişki örneğini izlediğinde ObjectStateManager eklenebilir.