EntityCollection<TEntity>.Remove(TEntity) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컬렉션에서 개체를 제거하고 삭제 관계를 표시합니다.
public:
virtual bool Remove(TEntity entity);
public bool Remove(TEntity entity);
override this.Remove : 'Entity -> bool
Public Function Remove (entity As TEntity) As Boolean
매개 변수
- entity
- TEntity
컬렉션에서 제거할 개체입니다.
반품
true항목이 성공적으로 제거되었으면 이고, 그렇지 않으면 . false
구현
예외
entity 개체가 .입니다 null.
예제
이 예제는 Adventure Works Sales 모델을 기반으로 합니다. 이 예제에서 코드를 실행하려면 프로젝트에 AdventureWorks 판매 모델을 이미 추가하고 Entity Framework를 사용하도록 프로젝트를 구성해야 합니다. 이렇게 하려면 방법: Entity Framework Project 및 방법: 모델 및 매핑 파일 수동으로 정의 절차를 완료합니다.
이 예제에서는 메서드를 Remove 사용하여 컬렉션에서 엔터티 중 하나를 제거한 다음 메서드를 호출 Contains 하여 개체가 컬렉션에서 제거되었는지 여부를 확인합니다.
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);
}
}
설명
또한 이 메서드는 Remove 소스 개체와 컬렉션에서 제거되는 개체 간의 관계를 삭제합니다. 관계에 참조 무결성 제약 조건이 있는 경우 종속 개체에서 메서드를 호출 Remove 하면 관계와 종속 개체가 모두 삭제됩니다. 이는 제약 조건이 부모에 대한 관계 없이 종속 개체가 존재할 수 없음을 나타내기 때문에 발생합니다. 자세한 내용은 ReferentialConstraint 요소(CSDL)를 참조하세요.
Remove 는 지정된 개체가 컬렉션에 없을 때 반환 false 됩니다.