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 프로젝트 구성 및 방법: 수동으로 모델 및 매핑 파일 정의의 절차를 완료합니다.
이 예제에서는 메서드를 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
합니다.
적용 대상
.NET