ObjectContext.Detach(Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
개체 컨텍스트에서 개체를 제거합니다.
public:
void Detach(System::Object ^ entity);
public void Detach (object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
매개 변수
- entity
- Object
분리할 개체입니다.
entity
만 제거됩니다. 같은 ObjectStateManager에서 추적하는 관련 개체가 있는 경우 이러한 개체는 자동으로 분리되지 않습니다.
예외
entity
이 null
인 경우
entity
가 이 ObjectContext와 연결되어 있지 않은 경우(예: 새로 만들어진 후 컨텍스트에 아직 연결되지 않았거나, 다른 컨텍스트를 통해 가져왔거나, 이미 분리된 경우)
예제
// This method is called to detach SalesOrderHeader objects and
// related SalesOrderDetail objects from the supplied object
// context when no longer needed by the application.
// Once detached, the resources can be garbage collected.
private static void DetachOrders(ObjectContext context,
SalesOrderHeader order)
{
try
{
// Detach each item from the collection.
while (order.SalesOrderDetails.Count > 0)
{
// Detach the first SalesOrderDetail in the collection.
context.Detach(order.SalesOrderDetails.First());
}
// Detach the order.
context.Detach(order);
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.ToString());
}
}
설명
에서 개체를 제거합니다 ObjectStateManager. 이렇게 하면 해당 개체에 대한 변경 내용 추적 및 ID 확인이 비활성화됩니다. 자세한 내용은 개체 연결 및 분리를 참조하세요.
메서드가 Detach 호출된 후 시스템은 더 이상 이 개체를 가리키는 참조를 유지하지 않으며 가비지 수집기에서 수집할 수 있습니다.
참고
가비지 수집은 사용자 코드에 분리된 개체에 대한 참조가 없는 경우에만 발생할 수 있습니다.
다음 고려 사항은 개체를 분리할 때 적용됩니다.
Detach 는 메서드에 전달되는 특정 개체에만 영향을 줍니다. 분리되는 개체에 관련 개체가 개체 컨텍스트에 있는 경우 해당 개체는 분리되지 않습니다.
개체를 분리해도 데이터 원본의 데이터에는 영향을 주지 않습니다.
계단식 삭제 지시문 및 참조 제약 조건은 분리 작업 중에 적용되지 않습니다.
자세한 내용은 개체 연결 및 분리를 참조하세요.
적용 대상
추가 정보
.NET