ChangeTracker Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bağlamın izlediği varlık örnekleri için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar. Bu sınıfın örnekleri genellikle öğesinden ChangeTracker alınır ve uygulama kodunuzda doğrudan oluşturulacak şekilde tasarlanmamıştır.
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
- Devralma
-
ChangeTracker
- Uygulamalar
-
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager> IResettableService
Açıklamalar
Daha fazla bilgi ve örnek için bkz. EF Core değişiklik izleme .
Oluşturucular
ChangeTracker(DbContext) |
Bu API, Entity Framework Core altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. Bu API gelecek sürümlerde değiştirilebilir veya kaldırılabilir. |
ChangeTracker(DbContext, IStateManager, IChangeDetector, IModel, IEntityEntryGraphIterator) |
Bu, Entity Framework Core altyapısını destekleyen ve genel API'ler ile aynı uyumluluk standartlarına tabi olmayan bir iç API'dir. Herhangi bir sürümde bildirimde bulunmaksızın değiştirilebilir veya kaldırılabilir. Bunu yalnızca kodunuzda son derece dikkatli bir şekilde kullanmanız ve bunu yapmanın yeni bir Entity Framework Core sürümüne güncelleştirirken uygulama hatalarına neden olabileceğini bilmeniz gerekir. |
ChangeTracker(IStateManager, IChangeDetector, IEntityEntryGraphIterator, DbContext) |
Bu API, Entity Framework Core altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. Bu API gelecek sürümlerde değiştirilebilir veya kaldırılabilir. |
Özellikler
AutoDetectChangesEnabled |
yönteminin ve ilgili sınıfların DetectChanges() yöntemleri DbContext tarafından otomatik olarak çağrılıp çağrılmadığını belirten bir değer alır veya ayarlar. |
CascadeDeleteTiming |
Bağımlı/alt varlığın üst/asıl varlığı olarak Deletedişaretlendikten sonra durumunun ne zaman olarak ayarlandığını Deleted belirten bir değer alır veya ayarlar. Varsayılan değer şudurImmediate: |
Context |
Bu değişiklik izleyicisinin ait olduğu bağlamı alır. |
DebugView |
İzlenen varlıkların insanlar tarafından okunabilir bir görünümü için hata ayıklayıcıda bu özelliği genişletin. Uyarı: Hata ayıklama dizelerinin biçimine güvenmeyin. Bunlar yalnızca hata ayıklama için tasarlanmıştır ve yayınlar arasında rastgele değiştirilebilir. Daha fazla bilgi ve örnek için bkz. EF Core değişiklik izleme . |
DeleteOrphansTiming |
Bağımlı/alt varlığın durumunun Deleted bir üst/asıl varlıktan bir kez ayrılmış durumda olacağını belirten bir gezinti veya yabancı anahtar özelliğinin null olarak ayarlandığını belirten bir değer alır veya ayarlar. Immediate varsayılan değerdir. |
LazyLoadingEnabled |
İzlenen varlıklar için gezinti özelliklerinin ilk erişimde yüklenip yüklenmeyeceğini belirten bir değer alır veya ayarlar. |
QueryTrackingBehavior |
Bağlama göre çalıştırılacak LINQ sorguları için izleme davranışını alır veya ayarlar. Değişiklik izlemenin devre dışı bırakılması, her varlık örneği için değişiklik izleme ayarlama ek yükünü önlediğinden salt okunur senaryolar için kullanışlıdır. Varlık örneklerini işlemek ve kullanarak SaveChanges()bu değişiklikleri veritabanında kalıcı hale getirmek istiyorsanız değişiklik izlemeyi devre dışı bırakmamalısınız. |
Yöntemler
AcceptAllChanges() |
Bağlamda varlıklarda yapılan tüm değişiklikleri kabul eder. İzlenen varlıkların veritabanının geçerli durumunu temsil ettiğini varsayar. Bu yöntem genellikle değişiklikler veritabanına başarıyla kaydedildikten sonra tarafından SaveChanges() çağrılır. |
CascadeChanges() |
Alt/bağımlı varlıkların gerekli üst/asıl varlıktan ayrılmaları veya gerekli üst/asıl varlığın kendisi silinmesi durumunda hemen art arda silinmesini zorlar. Bkz. DeleteBehavior. |
Clear() |
İzlenen tüm varlıkları izlemeyi durdurur. |
DetectChanges() |
Örnek verilerinde yapılan değişiklikleri algılamak için izlenen varlık örneklerini tarar. DetectChanges() , güncel bilgiler gerektiğinde (değişiklik izleme bilgilerini döndürmeden önce SaveChanges() ve döndürürken) genellikle bağlam tarafından otomatik olarak çağrılır. Genellikle yalnızca devre dışı bırakdıysanız AutoDetectChangesEnabledbu yöntemi çağırmanız gerekir. Daha fazla bilgi ve örnek için bkz. EF Core değişiklik izleme . |
Entries() |
Bağlam tarafından izlenen her varlık için bir EntityEntry döndürür. Girdiler, her varlık için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar. |
Entries<TEntity>() |
EntityEntry Bağlam tarafından izlenen belirli bir türün tüm varlıkları için bir alır. Girdiler, her varlık için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar. |
HasChanges() |
Yeni, silinmiş veya değiştirilmiş varlıkların izlenip izlenmediğini denetler, böylece bu değişiklikler çağrılırsa veya SaveChangesAsync(CancellationToken) çağrılırsa SaveChanges() veritabanına gönderilir. |
TrackGraph(Object, Action<EntityEntryGraphNode>) |
Gezinti özellikleri arasında geçiş yaparak bir varlığı ve erişilebilir varlıkları izlemeye başlar.
Dolaşma özyinelemeli olduğundan, bulunan varlıkların gezinti özellikleri de taranır.
Belirtilen |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>) |
Bir varlığın ve erişilebilir varlıkların gezinti özellikleri arasında geçiş yaparak izlemeye başlar.
Dolaşma özyinelemeli olduğundan, bulunan varlıkların gezinti özellikleri de taranır.
Belirtilen Bu yöntem, varlıkların bağlamın bir örneği kullanılarak alındığı ve sonra değişikliklerin bağlamın farklı bir örneği kullanılarak kaydedildiği bağlantısız senaryolarda kullanılmak üzere tasarlanmıştır. Buna örnek olarak, bir hizmet çağrısının veritabanından varlıkları aldığı ve başka bir hizmet çağrısının varlıklarda yapılan değişiklikleri sürdürdüğü bir web hizmeti örnek olarak verilmiştir. Her hizmet çağrısı, çağrı tamamlandığında atılan bağlamın yeni bir örneğini kullanır. Grafın çapraz geçişi genellikle zaten izlenen bir varlıkla karşılaşıldığında veya izlenmemesi gereken bir varlığa ulaşıldığında durdurulmalıdır. Bu tipik davranış için aşırı yüklemeyi kullanın TrackGraph(Object, Action<EntityEntryGraphNode>) . Öte yandan bu aşırı yükleme, geri çağırmanın dolaşmanın ne zaman sona ereceği konusunda karar vermesine olanak tanır, ancak dolaşmanın sonsuz döngüye girmemesini sağlamak için çağıranın üzerindedir. |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>) |
Gezinti özellikleri arasında geçiş yaparak bir varlığı ve erişilebilir varlıkları izlemeye başlar.
Dolaşma özyinelemeli olduğundan, bulunan varlıkların gezinti özellikleri de taranır.
Belirtilen |
Ekinlikler
DetectedAllChanges |
Varlık grafı için açık bir çağrı DetectChanges()aracılığıyla veya veya yürütmenin SaveChanges()SaveChangesAsync(CancellationToken)bir parçası gibi otomatik olarak herhangi bir değişiklik algılandığında bir olay tetiklendi. |
DetectedEntityChanges |
Tek bir varlıkta açık bir veya çağrısı DetectChanges()DetectChanges()aracılığıyla ya da veya yürütmenin SaveChanges()SaveChangesAsync(CancellationToken)bir parçası gibi otomatik olarak herhangi bir değişiklik algılandığında bir olay tetiklendi. |
DetectingAllChanges |
Varlık grafı değişiklikleri algılandığında, açık bir çağrısı DetectChanges()aracılığıyla veya veya yürütmenin SaveChanges()SaveChangesAsync(CancellationToken)bir parçası gibi otomatik olarak bir olay tetiklenir. |
DetectingEntityChanges |
Tek bir varlığa yapılan değişiklikler algılanırken tetiklenen bir olay, veya DetectChanges()açık bir çağrısı DetectChanges() aracılığıyla ya da veya yürütmenin SaveChanges()SaveChangesAsync(CancellationToken)bir parçası gibi otomatik olarak gerçekleşmek üzeredir. |
StateChanged |
İlişkili DbContext tarafından izlenen bir varlık bir birinden diğerine EntityState taşındığında bir olay tetiklendi. |
StateChanging |
İlişkili DbContext tarafından izlenen bir varlık bir birinden diğerine EntityState geçtiğinde bir olay tetiklendi. |
Tracked |
Bir varlık, bir izleme sorgusundan döndürülürken veya bağlama eklendiğinden veya eklendiğinden bağlam tarafından izlendiğinde bir olay tetiklenir. |
Tracking |
Bir varlık, bir izleme sorgusundan döndürülür veya bağlama eklendiğinden veya eklendiğinden, bağlam tarafından izlenmek üzere olduğunda bir olay tetiklendi. |
Belirtik Arabirim Kullanımları
IInfrastructure<IStateManager>.Instance |
Kullanımdan kalktı..
İzlenen varlıklar hakkındaki bilgileri depolamak için kullanılan iç durum yöneticisini alır. Bu özellik, uzantı yöntemleri tarafından kullanılmak üzere tasarlanmıştır. Uygulama kodunda kullanılması amaçlanmamıştır. |
IResettableService.ResetState() |
Havuzdan kullanılabilmesi için hizmeti sıfırlar. |
IResettableService.ResetStateAsync(CancellationToken) |
Bağlamın izlediği varlık örnekleri için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar. Bu sınıfın örnekleri genellikle öğesinden ChangeTracker alınır ve uygulama kodunuzda doğrudan oluşturulacak şekilde tasarlanmamıştır. |
Uzantı Metotları
ToDebugString(ChangeTracker, ChangeTrackerDebugStringOptions, Int32) |
Verilen meta verilerin insan tarafından okunabilir bir gösterimini oluşturur. Uyarı: Döndürülen dizenin biçimine güvenmeyin. Yalnızca hata ayıklama için tasarlanmıştır ve yayınlar arasında rastgele değiştirilebilir. |
GetInfrastructure<T>(IInfrastructure<T>) |
kullanılarak IInfrastructure<T>gizlenen bir özellikten değeri alır. Bu yöntem genellikle veritabanı sağlayıcıları (ve diğer uzantılar) tarafından kullanılır. Genellikle uygulama kodunda kullanılmaz. |
Şunlara uygulanır
Entity Framework