EntityCollection<TEntity>.Remove(TEntity) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Remove um objeto da coleção e marca a relação para eliminaçã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 remover da coleção.
Devoluções
true se o item fosse removido com sucesso; caso contrário, false.
Implementações
Exceções
entity O objeto é null.
O entity objeto não está ligado ao mesmo contexto do objeto.
-ou-
O entity objeto não tem um gestor de relações válido.
Exemplos
Este exemplo baseia-se no Modelo de Vendas da Adventure Works. Para executar o código neste exemplo, deve já ter adicionado o AdventureWorks Sales Model ao seu projeto e configurado o seu projeto para usar o Entity Framework. Para isso, complete os procedimentos em Como: Configurar manualmente um Entity Framework Project e Como: Definir manualmente o modelo e os ficheiros de mapeamento.
Este exemplo usa o Remove método para remover uma das entidades da coleção e depois 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);
}
}
Observações
O Remove método também elimina a relação entre o objeto de origem e o objeto que está a ser removido da coleção. Se a relação tiver uma restrição de integridade referencial, chamar o Remove método num objeto dependente marca tanto a relação como o objeto dependente para eliminação. Isto ocorre porque a restrição indica que o objeto dependente não pode existir sem uma relação com o pai. Para mais informações, consulte ReferentialConstraint Element (CSDL).
Remove retorna false quando o objeto especificado não está na coleção.