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 kolekcji entities
jest lub nie jest null
w Unchanged stanie lub Modified .
-lub-
Nie można zdefiniować relacji na podstawie metadanych EDM. Może się to zdarzyć, 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 obiekcie ObjectContext. Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w obiekcie EntityCollection<TEntity>. 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ą. Podane jednostki nie są zakładane jako kompletny zestaw 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 już śledzi 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
Obiekt, który jest dołączony.
Wyjątki
Gdy wartość entity
to null
.
entity
Gdy nie można powiązać obiektu źródłowego. Może się to zdarzyć, gdy skojarzenie w schemacie koncepcyjnym nie obsługuje relacji między dwoma typami.
-lub-
Gdy obiekt jest lub nie jest null
w stanie lub jest 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 Model do projektu i skonfigurować projekt do korzystania z platformy Entity Framework. Aby to zrobić, wykonaj procedury opisane w temacie Instrukcje: Ręczne konfigurowanie projektu entity Framework i instrukcje: Ręczne definiowanie modelu i mapowania plików.
Ten przykład dołącza kolekcję odłączonych SalesOrderDetail
obiektów i odłączonego SalesOrderHeader
obiektu 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 obiekcie ObjectContext. Aby utworzyć nowy obiekt powiązany z obiektem źródłowym, wywołaj metodę Add w obiekcie EntityCollection<TEntity>. 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>.
Dołączony obiekt nie jest zakładany jako kompletny zestaw powiązanych obiektów jednostki.
Obiekt skojarzony z tym EntityCollection<TEntity> obiektem i wszystkie dołączone do niego obiekty muszą być w Unchanged stanie lub Modified .
Obiekty w Deleted stanie mogą być dołączone tylko wtedy, gdy ObjectStateManager obiekt już śledzi wystąpienie relacji.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla