Udostępnij za pośrednictwem


EntityCollection<TEntity>.Remove(TEntity) Metoda

Definicja

Usuwa obiekt z kolekcji i oznacza relację do usunięcia.

public:
 virtual bool Remove(TEntity entity);
public bool Remove (TEntity entity);
override this.Remove : 'Entity -> bool
Public Function Remove (entity As TEntity) As Boolean

Parametry

entity
TEntity

Obiekt do usunięcia z kolekcji.

Zwraca

true jeśli element został pomyślnie usunięty; w przeciwnym razie , false.

Implementuje

Wyjątki

entity obiekt to null.

Obiekt entity nie jest dołączony do tego samego kontekstu obiektu.

-lub-

Obiekt entity nie ma prawidłowego menedżera relacji.

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.

W tym przykładzie użyto Remove metody , aby usunąć jedną z jednostek z kolekcji, a następnie wywoła Contains metodę w celu określenia, czy obiekt został usunięty z kolekcji.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    Contact contact = new Contact();

    // Create a new SalesOrderHeader.
    SalesOrderHeader newSalesOrder1 = new SalesOrderHeader();
    // Add SalesOrderHeader to the Contact.
    contact.SalesOrderHeaders.Add(newSalesOrder1);

    // Create another SalesOrderHeader.
    SalesOrderHeader newSalesOrder2 = new SalesOrderHeader();
    // Add SalesOrderHeader to the Contact.
    contact.SalesOrderHeaders.Add(newSalesOrder2);

    // Get all related ends
    IEnumerable<IRelatedEnd> relEnds =
        ((IEntityWithRelationships)contact)
        .RelationshipManager.GetAllRelatedEnds();

    foreach (IRelatedEnd relEnd in relEnds)
    {
        // Get Entity Collection from related end
        EntityCollection<SalesOrderHeader> entityCollection =
            (EntityCollection<SalesOrderHeader>)relEnd;

        Console.WriteLine("EntityCollection count: {0}",
            entityCollection.Count);
        // Remove the first entity object.
        entityCollection.Remove(newSalesOrder1);

        bool contains = entityCollection.Contains(newSalesOrder1);

        // Write the number of items after one entity has been removed
        Console.WriteLine("EntityCollection count after one entity has been removed: {0}",
            entityCollection.Count);

        if (contains == false)
            Console.WriteLine("The removed entity is not in in the collection any more.");

        //Use IRelatedEnd to add the entity back.
        relEnd.Add(newSalesOrder1);
        Console.WriteLine("EntityCollection count after an entity has been added again: {0}",
            entityCollection.Count);
    }
}

Uwagi

Metoda Remove usuwa również relację między obiektem źródłowym a obiektem usuwanym z kolekcji. Jeśli relacja ma ograniczenie integralności referencyjnej, wywołanie Remove metody na obiekcie zależnym oznacza zarówno relację, jak i obiekt zależny do usunięcia. Dzieje się tak, ponieważ ograniczenie wskazuje, że obiekt zależny nie może istnieć bez relacji z elementem nadrzędnym. Aby uzyskać więcej informacji, zobacz ReferentialConstraint, element (CSDL).

Remove zwraca wartość false , gdy określony obiekt nie znajduje się w kolekcji.

Dotyczy