다음을 통해 공유


변경 내용 추적 및 ID 확인(Entity Framework)

ObjectQuery는 쿼리에서 반환된 새 개체를 ObjectStateManager에서 유지되는 개체 캐시에 추가합니다. ObjectContextAttach 메서드와 EntityReferenceEntityCollectionLoad 메서드는 또한 개체를 개체 캐시에 추가합니다. 각 개체 컨텍스트에 대해 하나의 ObjectStateManager가 있습니다. 개체는 개체 컨텍스트 내에서 데이터 원본의 데이터와 독립적으로 추가, 수정 및 삭제될 수 있습니다. 단일 개체 컨텍스트의 범위 내에 있는 여러 쿼리 또는 로드 작업에서 중복된 개체가 들어 있는 개체 컬렉션을 반환하면 개체 서비스는 특정 엔터티를 보유한 캐시 내 각 개체의 단일 인스턴스만 유지합니다. 쿼리는 기본적으로 캐시에 없는 개체만 반환합니다. 즉, 캐시에 이미 있는 개체에 대한 변경 내용은 덮어쓰여지지 않습니다. 쿼리 및 로드 작업에 MergeOption 값을 지정하여 이 동작을 제어합니다. 기본값은 AppendOnly입니다. 개체 캐시에 없는 개체만 로드합니다. 즉, 기존 개체는 덮어쓰여지지 않습니다. 개체 캐시에 대한 변경 내용이 데이터베이스의 업데이트에 의해 덮어쓰여지지 않도록 하는 다른 방법은 PreserveChanges를 지정하는 것입니다. 로컬 컨텍스트에서 변경 내용을 유지하는 동안 낙관적 동시성 예외를 확인할 때 자주 사용됩니다. 자세한 내용은 변경 내용 저장 및 동시성 관리(Entity Framework)를 참조하십시오. OverwriteChanges를 지정할 때, 이러한 개체가 이미 변경된 경우에도 캐시의 개체는 데이터베이스에서 구체화된 최신 버전의 개체로 대체됩니다.

참고 항목

기타 리소스

개체 컨텍스트 관리(Entity Framework)