EntityCollection<TEntity>.Remove(TEntity) Methode

Definitie

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.

Van toepassing op