EntityCollection<TEntity>.Remove(TEntity) Méthode

Définition

Supprime un objet de la collection et marque la relation pour la suppression.

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

Paramètres

entity
TEntity

Objet à supprimer de la collection.

Retours

true si l'élément a été supprimée avec succès ; sinon, false.

Implémente

Exceptions

L’objet entity est null.

L’objet entity n’est pas attaché au même contexte d’objet.

- ou -

L’objet entity n’a pas de gestionnaire de relations valide.

Exemples

Cet exemple est basé sur le modèle de vente Adventure Works Sales Model. Pour exécuter le code de cet exemple, vous devez déjà avoir ajouté le modèle de vente AdventureWorks Sales Model à votre projet et configuré ce dernier pour qu’il utilise Entity Framework. Pour ce faire, suivez les procédures décrites dans Guide pratique pour configurer manuellement un projet Entity Framework et Guide pratique pour définir manuellement le modèle et les fichiers de mappage.

Cet exemple utilise la méthode Remove pour supprimer l’une des entités de la collection, puis appelle la méthode Contains afin de déterminer si l’objet a été supprimé de la collection.

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);
    }
}

Remarques

La méthode Remove supprime également la relation entre l'objet source et l'objet qui est supprimé de la collection. Si la relation a une contrainte d'intégrité référentielle, l'appel de la méthode Remove sur un objet dépendant marque à la fois la relation et l'objet dépendant pour la suppression. Cela se produit car la contrainte indique que l'objet dépendant ne peut pas exister sans relation au parent. Pour plus d’informations, consultez ReferentialConstraint, élément (CSDL).

Remove retourne false lorsque l’objet spécifié n’est pas dans la collection.

S’applique à