EntityCollection<TEntity>.Attach Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.
Przeciążenia
Attach(IEnumerable<TEntity>) |
Definiuje relacje między obiektem a kolekcją powiązanych obiektów w kontekście obiektu. |
Attach(TEntity) |
Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu. |
Attach(IEnumerable<TEntity>)
Definiuje relacje między obiektem a kolekcją powiązanych obiektów w kontekście obiektu.
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.
Wyjątki
entities
kolekcja to null
.
Obiekt źródłowy lub obiekt w entities
kolekcji jest null
lub nie znajduje się w Unchanged stanie lub Modified .
-lub-
Nie można zdefiniować relacji na podstawie metadanych EDM. Taka sytuacja może wystąpić, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.
Uwagi
Metoda Attach służy 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 już istnieją w kontekście obiektu. Aby dołączyć obiekt lub graf obiektu, w którym relacje są już zdefiniowane, wywołaj metodę Attach w ObjectContextobiekcie . Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w EntityCollection<TEntity>obiekcie . Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.
Jeśli kolekcja jest już wypełniona lub częściowo wypełniona, Attach metoda scala istniejące jednostki z daną jednostką. Nie zakłada się, że podane jednostki są kompletnym zestawem powiązanych jednostek.
Wszystkie przekazane jednostki muszą być w Unchanged stanie lub Modified . Obiekty w Deleted stanie są dozwolone tylko wtedy, gdy menedżer stanu śledzi już wystąpienie relacji.
Dotyczy
Attach(TEntity)
Definiuje relację między dwoma dołączonymi obiektami w kontekście obiektu.
public:
void Attach(TEntity entity);
public void Attach (TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)
Parametry
- entity
- TEntity
Dołączany obiekt.
Wyjątki
Gdy wartość to entity
null
.
entity
Gdy obiekt źródłowy nie może być powiązany. Taka sytuacja może wystąpić, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.
-lub-
Jeśli obiekt jest null
lub nie znajduje się w Unchanged stanie lub Modified .
Przykłady
Ten przykład jest oparty na modelu Adventure Works Sales Model. Aby uruchomić kod w tym przykładzie, musisz już dodać model AdventureWorks Sales Do projektu i skonfigurować projekt do korzystania z programu Entity Framework. Aby to zrobić, wykonaj procedury opisane w temacie Instrukcje: Ręczne konfigurowanie projektu platformy Entity Framework i Instrukcje: Ręczne definiowanie modelu i plików mapowania.
W tym przykładzie dołączana jest kolekcja odłączonych SalesOrderDetail
obiektów i odłączony SalesOrderHeader
obiekt do kontekstu obiektu, a następnie definiuje relacje między SalesOrderHeader
obiektem a każdym SalesOrderDetail
obiektem.
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);
}
}
Uwagi
Metoda Attach służy do definiowania relacji między dwoma obiektami, gdy oba obiekty już istnieją w kontekście obiektu. Aby dołączyć obiekt lub graf obiektu, w którym relacje są już zdefiniowane, wywołaj metodę Attach w ObjectContextobiekcie . Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w EntityCollection<TEntity>obiekcie . Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.
EntityCollection<TEntity> Jeśli obiekt został już załadowany, Attach metoda scala obiekt wraz z istniejącymi obiektami w obiekcie EntityCollection<TEntity>.
Nie zakłada się, że dołączony obiekt jest kompletnym zestawem powiązanych obiektów jednostki.
Obiekt skojarzony z tym EntityCollection<TEntity> obiektem i wszystkimi obiektami dołączonymi do niego musi być w Unchanged stanie lub Modified .
Obiekty w Deleted stanie mogą być dołączone tylko wtedy, gdy ObjectStateManager obiekt już śledzi wystąpienie relacji.