Compartilhar via


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

Definição

Remove um objeto da coleção e marca a relação para exclusão.

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

Parâmetros

entity
TEntity

O objeto a ser removido da coleção.

Retornos

true se o item foi removido com êxito; caso contrário, false.

Implementações

Exceções

O objeto entity é null.

O objeto entity não está anexado ao mesmo contexto de objeto.

- ou -

O objeto entity não tem um gerenciador de relação válido.

Exemplos

Este exemplo é baseado no Modelo de Vendas da Adventure Works. Para executar o código neste exemplo, você já deve ter adicionado o Modelo de Vendas adventureworks ao seu projeto e configurado seu projeto para usar o Entity Framework. Para fazer isso, conclua os procedimentos em Como configurar manualmente um projeto do Entity Framework e Como definir manualmente os arquivos de modelo e mapeamento.

Este exemplo usa o Remove método para remover uma das entidades da coleção e, em seguida, chama o Contains método para determinar se o objeto foi removido da coleção.

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

Comentários

O Remove método também exclui a relação entre o objeto de origem e o objeto que está sendo removido da coleção. Se a relação tiver uma restrição de integridade referencial, chamar o Remove método em um objeto dependente marcará a relação e o objeto dependente para exclusão. Isso ocorre porque a restrição indica que o objeto dependente não pode existir sem uma relação com o pai. Para obter mais informações, consulte Elemento ReferentialConstraint (CSDL).

Remove retorna false quando o objeto especificado não está na coleção.

Aplica-se a