EntityCollection<TEntity>.Remove(TEntity) 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.
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.