EntityCollection<TEntity>.Remove(TEntity) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee verwijdert u een object uit de verzameling en markeert u de relatie voor verwijdering.
public:
virtual bool Remove(TEntity entity);
public bool Remove(TEntity entity);
override this.Remove : 'Entity -> bool
Public Function Remove (entity As TEntity) As Boolean
Parameters
- entity
- TEntity
Het object dat uit de verzameling moet worden verwijderd.
Retouren
true als het item is verwijderd; anders, false.
Implementeringen
Uitzonderingen
entity object is null.
Het entity object is niet gekoppeld aan dezelfde objectcontext.
– of –
Het entity object heeft geen geldig relatiebeheer.
Voorbeelden
Dit voorbeeld is gebaseerd op het Adventure Works-verkoopmodel. Als u de code in dit voorbeeld wilt uitvoeren, moet u het AdventureWorks-verkoopmodel al aan uw project hebben toegevoegd en uw project zo configureren dat het Entity Framework wordt gebruikt. U doet dit door de procedures in Hoe u dit doet: Handmatig een Entity Framework-Project en Aanvullen: Handmatig het model en toewijzingsbestanden definiëren.
In dit voorbeeld wordt de Remove methode gebruikt om een van de entiteiten uit de verzameling te verwijderen en wordt vervolgens de Contains methode aangeroepen om te bepalen of het object uit de verzameling is verwijderd.
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);
}
}
Opmerkingen
De Remove methode verwijdert ook de relatie tussen het bronobject en het object dat uit de verzameling wordt verwijderd. Als de relatie een beperking voor referentiële integriteit heeft, markeert het aanroepen van de Remove methode voor een afhankelijk object zowel de relatie als het afhankelijke object voor verwijdering. Dit komt doordat de beperking aangeeft dat het afhankelijke object niet kan bestaan zonder een relatie met het bovenliggende object. Zie ReferentialConstraint Element (CSDL) voor meer informatie.
Remove retourneert false wanneer het opgegeven object zich niet in de verzameling bevindt.