EntityCollection<TEntity>.Remove(TEntity) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Supprime un objet de la collection et marque la relation à supprimer.
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é avec succès ; sinon, false.
Implémente
Exceptions
entity l’objet 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. Pour exécuter le code dans cet exemple, vous devez avoir déjà ajouté le modèle de vente AdventureWorks à votre projet et configuré votre projet pour utiliser Entity Framework. Pour ce faire, suivez les procédures de How to : Configurez manuellement entity Framework Project et How to : Define the Model and Mapping Files.
Cet exemple utilise la Remove méthode pour supprimer l’une des entités de la collection, puis appelle la Contains méthode pour 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)
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 Remove méthode supprime également la relation entre l’objet source et l’objet supprimé de la collection. Si la relation a une contrainte d’intégrité référentielle, l’appel de la Remove méthode sur un objet dépendant marque à la fois la relation et l’objet dépendant pour suppression. Cela se produit parce que la contrainte indique que l’objet dépendant ne peut pas exister sans relation avec le parent. Pour plus d’informations, consultez l’élément ReferentialConstraint (CSDL).
Remove retourne false lorsque l’objet spécifié n’est pas dans la collection.