ChangeTracker 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컨텍스트가 추적하는 엔터티 인스턴스에 대한 변경 내용 추적 정보 및 작업에 대한 액세스를 제공합니다. 이 클래스의 인스턴스는 일반적으로 에서 ChangeTracker 가져오며 애플리케이션 코드에서 직접 생성되도록 설계되지 않았습니다.
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager>
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IResettableService
type ChangeTracker = class
interface IInfrastructure<IStateManager>
type ChangeTracker = class
interface IInfrastructure<IStateManager>
interface IResettableService
type ChangeTracker = class
interface IResettableService
Public Class ChangeTracker
Implements IInfrastructure(Of IStateManager)
Public Class ChangeTracker
Implements IInfrastructure(Of IStateManager), IResettableService
Public Class ChangeTracker
Implements IResettableService
- 상속
-
ChangeTracker
- 구현
-
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager> IResettableService
설명
자세한 내용 및 예제 는 EF Core 변경 내용 추적 을 참조하세요.
생성자
ChangeTracker(DbContext) |
이 API는 Entity Framework Core 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 API는 이후 릴리스에서 변경되거나 제거될 수 있습니다. |
ChangeTracker(DbContext, IStateManager, IChangeDetector, IModel, IEntityEntryGraphIterator) |
이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 예고 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다. |
ChangeTracker(IStateManager, IChangeDetector, IEntityEntryGraphIterator, DbContext) |
이 API는 Entity Framework Core 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 API는 이후 릴리스에서 변경되거나 제거될 수 있습니다. |
속성
AutoDetectChangesEnabled |
및 관련 클래스의 메서드 DbContext 에 의해 메서드가 DetectChanges() 자동으로 호출되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
CascadeDeleteTiming |
부모/주체 엔터티가 로 표시된 Deleted후 종속/자식 엔터티의 상태가 로 Deleted 설정된 시기를 나타내는 값을 가져오거나 설정합니다. 기본값은 입니다Immediate. |
Context |
이 변경 추적기가 속한 컨텍스트를 가져옵니다. |
DebugView |
추적 중인 엔터티의 사람이 읽을 수 있는 보기를 보려면 디버거에서 이 속성을 확장합니다. 경고: 디버그 문자열의 형식을 사용하지 마세요. 디버깅 전용으로 설계되었으며 릴리스 간에 임의로 변경될 수 있습니다. 자세한 내용 및 예제 는 EF Core 변경 내용 추적 을 참조하세요. |
DeleteOrphansTiming |
null로 설정되는 탐색 또는 외래 키 속성을 통해 종속/자식 엔터티의 상태가 부모/주체 엔터티에서 분리된 후 로 설정된 Deleted 경우를 나타내는 값을 가져오거나 설정합니다. 기본값은 Immediate입니다. |
LazyLoadingEnabled |
추적된 엔터티의 탐색 속성이 첫 번째 액세스에서 로드될지 여부를 나타내는 값을 가져오거나 설정합니다. |
QueryTrackingBehavior |
컨텍스트에 대해 실행되는 LINQ 쿼리에 대한 추적 동작을 가져오거나 설정합니다. 변경 내용 추적을 사용하지 않도록 설정하면 각 엔터티 instance 대한 변경 내용 추적 설정 오버헤드를 방지하므로 읽기 전용 시나리오에 유용합니다. 엔터티 인스턴스를 조작하고 를 사용하여 SaveChanges()데이터베이스에 이러한 변경 내용을 유지하려는 경우 변경 내용 추적을 사용하지 않도록 설정하면 안 됩니다. |
메서드
AcceptAllChanges() |
컨텍스트에서 엔터티에 대한 모든 변경 내용을 허용합니다. 추적된 엔터티가 데이터베이스의 현재 상태를 나타낸 것으로 가정합니다. 이 메서드는 일반적으로 변경 내용을 데이터베이스에 성공적으로 저장한 후에 에 의해 SaveChanges() 호출됩니다. |
CascadeChanges() |
자식/종속 엔터티가 필수 부모/주체 엔터티에서 분리되거나 필요한 부모/주체 엔터티 자체가 삭제되면 자식/종속 엔터티를 즉시 삭제합니다. DeleteBehavior을 참조하세요. |
Clear() |
현재 추적된 모든 엔터티 추적을 중지합니다. |
DetectChanges() |
추적된 엔터티 인스턴스를 검사하여 instance 데이터에 대한 변경 내용을 검색합니다. DetectChanges() 는 일반적으로 최신 정보가 필요한 경우 컨텍스트에 의해 자동으로 호출됩니다(변경 내용 추적 정보를 반환하기 전 SaveChanges() 과 반환할 때). 일반적으로 를 사용하지 않도록 설정한 AutoDetectChangesEnabled경우에만 이 메서드를 호출해야 합니다. 자세한 내용 및 예제 는 EF Core 변경 내용 추적 을 참조하세요. |
Entries() |
컨텍스트에서 EntityEntry 추적하는 각 엔터티에 대한 를 반환합니다. 항목은 각 엔터티에 대한 변경 내용 추적 정보 및 작업에 대한 액세스를 제공합니다. |
Entries<TEntity>() |
컨텍스트에서 EntityEntry 추적되는 지정된 형식의 모든 엔터티에 대한 을 가져옵니다. 항목은 각 엔터티에 대한 변경 내용 추적 정보 및 작업에 대한 액세스를 제공합니다. |
HasChanges() |
또는 SaveChangesAsync(CancellationToken) 이 호출되는 경우 SaveChanges() 이러한 변경 내용이 데이터베이스로 전송되도록 새 엔터티, 삭제 또는 변경된 엔터티가 추적되고 있는지 확인합니다. |
TrackGraph(Object, Action<EntityEntryGraphNode>) |
탐색 속성을 트래버스하여 연결할 수 있는 엔터티 및 엔터티 추적을 시작합니다.
순회는 재귀적이므로 검색된 엔터티의 탐색 속성도 검사됩니다.
지정된 는 검색된 |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>) |
탐색 속성을 트래버스하여 연결할 수 있는 엔터티 및 엔터티 추적을 시작합니다.
순회는 재귀적이므로 검색된 엔터티의 탐색 속성도 검사됩니다.
지정된 는 검색된 이 메서드는 컨텍스트의 한 instance 사용하여 엔터티를 검색한 다음 컨텍스트의 다른 instance 사용하여 변경 내용을 저장하는 연결이 끊긴 시나리오에서 사용하도록 설계되었습니다. 예를 들어 한 서비스 호출이 데이터베이스에서 엔터티를 검색하고 다른 서비스 호출이 엔터티에 대한 변경 내용을 유지하는 웹 서비스입니다. 각 서비스 호출은 호출이 완료될 때 삭제되는 컨텍스트의 새 instance 사용합니다. 일반적으로 그래프의 통과는 이미 추적된 엔터티가 발견되거나 추적해서는 안 되는 엔터티에 도달할 때마다 중지되어야 합니다. 이 일반적인 동작의 경우 오버로드를 TrackGraph(Object, Action<EntityEntryGraphNode>) 사용합니다. 반면에 이 오버로드는 콜백이 트래버스가 종료되는 시기를 결정할 수 있지만, 통과가 무한 루프로 들어가지 않도록 호출자에 onus가 있습니다. |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>) |
탐색 속성을 트래버스하여 연결할 수 있는 엔터티 및 엔터티 추적을 시작합니다.
순회는 재귀적이므로 검색된 엔터티의 탐색 속성도 검사됩니다.
지정된 는 검색된 |
이벤트
DetectedAllChanges |
에 대한 명시적 호출 DetectChanges()을 통해 엔터티 그래프에 대한 변경 내용이 감지되거나 또는 실행 SaveChanges()SaveChangesAsync(CancellationToken)의 일부와 같이 자동으로 발생하는 이벤트입니다. |
DetectedEntityChanges |
또는 에 대한 명시적 호출 DetectChanges() 을 통해 단일 엔터티에 대한 변경 내용이 감지되거나 또는 DetectChanges()실행 SaveChanges()SaveChangesAsync(CancellationToken)의 일부와 같이 자동으로 발생하는 이벤트입니다. |
DetectingAllChanges |
에 대한 명시적 호출을 통해 또는 또는 실행 SaveChanges()SaveChangesAsync(CancellationToken)의 일부와 같이 자동으로 발생할 엔터티 그래프의 변경 내용을 검색할 DetectChanges()때 발생하는 이벤트입니다. |
DetectingEntityChanges |
또는 에 대한 명시적 호출 DetectChanges() 을 통해 단일 엔터티에 대한 변경 내용을 검색할 때 발생하거나 또는 DetectChanges()실행 SaveChanges()SaveChangesAsync(CancellationToken)의 일부와 같이 자동으로 발생하는 이벤트입니다. |
StateChanged |
연결된 DbContext 에 의해 추적되는 엔터티가 한 EntityState 엔터티에서 다른 엔터티로 이동했을 때 발생하는 이벤트입니다. |
StateChanging |
연결된 DbContext 에 의해 추적되는 엔터티가 서로 EntityState 이동할 때 발생하는 이벤트입니다. |
Tracked |
엔터티가 추적 쿼리에서 반환되었거나 컨텍스트에 연결되거나 추가되었기 때문에 컨텍스트에서 엔터티를 추적할 때 발생하는 이벤트입니다. |
Tracking |
엔터티가 추적 쿼리에서 반환되거나 컨텍스트에 연결되거나 추가되기 때문에 컨텍스트에서 엔터티를 추적하려고 할 때 발생하는 이벤트입니다. |
명시적 인터페이스 구현
IInfrastructure<IStateManager>.Instance |
사용되지 않습니다..
추적된 엔터티에 대한 정보를 저장하는 데 사용되는 내부 상태 관리자를 가져옵니다. 이 속성은 확장 메서드에서 사용하기 위한 것입니다. 애플리케이션 코드에서 사용할 수 없습니다. |
IResettableService.ResetState() |
풀에서 사용할 수 있도록 서비스를 다시 설정합니다. |
IResettableService.ResetStateAsync(CancellationToken) |
컨텍스트가 추적하는 엔터티 인스턴스에 대한 변경 내용 추적 정보 및 작업에 대한 액세스를 제공합니다. 이 클래스의 인스턴스는 일반적으로 에서 ChangeTracker 가져오며 애플리케이션 코드에서 직접 생성되도록 설계되지 않았습니다. |
확장 메서드
ToDebugString(ChangeTracker, ChangeTrackerDebugStringOptions, Int32) |
지정된 메타데이터의 사람이 읽을 수 있는 표현을 만듭니다. 경고: 반환된 문자열의 형식을 사용하지 마세요. 디버깅 전용으로 설계되었으며 릴리스 간에 임의로 변경될 수 있습니다. |
GetInfrastructure<T>(IInfrastructure<T>) |
을 사용하여 IInfrastructure<T>숨겨지는 속성에서 값을 가져옵니다. 이 메서드는 일반적으로 데이터베이스 공급자(및 기타 확장)에서 사용됩니다. 일반적으로 애플리케이션 코드에는 사용되지 않습니다. |
적용 대상
Entity Framework