EntityCollection<TEntity>.Remove(TEntity) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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)
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.