EntityCollection<TEntity>.Remove(TEntity) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Entfernt ein Objekt aus der Auflistung und markiert die Beziehung zum Löschen.
public:
virtual bool Remove(TEntity entity);
public bool Remove(TEntity entity);
override this.Remove : 'Entity -> bool
Public Function Remove (entity As TEntity) As Boolean
Parameter
- entity
- TEntity
Das Objekt, das aus der Auflistung entfernt werden soll.
Gibt zurück
truewenn das Element erfolgreich entfernt wurde; andernfalls . false
Implementiert
Ausnahmen
entity -Objekt ist null.
Das entity Objekt ist nicht mit demselben Objektkontext verknüpft.
-oder-
Das entity Objekt verfügt nicht über einen gültigen Beziehungs-Manager.
Beispiele
Dieses Beispiel basiert auf dem Adventure Works-Vertriebsmodell. Um den Code in diesem Beispiel auszuführen, müssen Sie ihrem Projekt bereits das AdventureWorks Sales Model hinzugefügt und ihr Projekt so konfiguriert haben, dass es das Entity Framework verwendet. Führen Sie dazu die Verfahren in How to: Manually Configure an Entity Framework Project and How to: Manually Define the Model and Mapping Files.
In diesem Beispiel wird die Remove Methode verwendet, um eine der Entitäten aus der Auflistung zu entfernen, und ruft dann die Contains Methode auf, um zu bestimmen, ob das Objekt aus der Auflistung entfernt wurde.
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)
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);
}
}
Hinweise
Die Remove Methode löscht auch die Beziehung zwischen dem Quellobjekt und dem Objekt, das aus der Auflistung entfernt wird. Wenn die Beziehung eine referentielle Integritätseinschränkung aufweist, wird durch Aufrufen der Remove Methode für ein abhängiges Objekt sowohl die Beziehung als auch das abhängige Objekt zum Löschen markiert. Dies liegt daran, dass die Einschränkung angibt, dass das abhängige Objekt nicht ohne eine Beziehung zum übergeordneten Objekt vorhanden ist. Weitere Informationen finden Sie unter ReferentialConstraint Element (CSDL).For more information, see ReferentialConstraint Element (CSDL).
Remove gibt zurück false , wenn das angegebene Objekt nicht in der Auflistung enthalten ist.