ChangeTracker Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan akses untuk mengubah informasi pelacakan dan operasi untuk instans entitas yang dilacak konteksnya. Instans kelas ini biasanya diperoleh dari ChangeTracker dan tidak dirancang untuk secara langsung dibangun dalam kode aplikasi Anda.
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
- Warisan
-
ChangeTracker
- Penerapan
-
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager> IResettableService
Keterangan
Lihat Pelacakan perubahan EF Core untuk informasi dan contoh selengkapnya.
Konstruktor
ChangeTracker(DbContext) |
API ini mendukung infrastruktur Entity Framework Core dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. API ini dapat berubah atau dihapus dalam rilis mendatang. |
ChangeTracker(DbContext, IStateManager, IChangeDetector, IModel, IEntityEntryGraphIterator) |
Ini adalah API internal yang mendukung infrastruktur Entity Framework Core dan tidak tunduk pada standar kompatibilitas yang sama dengan API publik. Ini dapat diubah atau dihapus tanpa pemberitahuan dalam rilis apa pun. Anda hanya boleh menggunakannya langsung dalam kode Anda dengan sangat hati-hati dan mengetahui bahwa melakukannya dapat mengakibatkan kegagalan aplikasi saat memperbarui ke rilis Entity Framework Core baru. |
ChangeTracker(IStateManager, IChangeDetector, IEntityEntryGraphIterator, DbContext) |
API ini mendukung infrastruktur Entity Framework Core dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. API ini dapat berubah atau dihapus dalam rilis mendatang. |
Properti
AutoDetectChangesEnabled |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah metode dipanggil DetectChanges() secara otomatis dengan metode DbContext dan kelas terkait. |
CascadeDeleteTiming |
Mendapatkan atau menetapkan nilai yang menunjukkan kapan entitas dependen/anak akan mengatur statusnya ke Deleted setelah entitas induk/utamanya ditandai sebagai Deleted. Nilai defaultnya adalahImmediate. |
Context |
Mendapatkan konteks tempat pelacak perubahan ini berada. |
DebugView |
Perluas properti ini di debugger untuk tampilan entitas yang dapat dibaca manusia yang sedang dilacak. Peringatan: Jangan mengandalkan format string debug. Mereka dirancang hanya untuk penelusuran kesalahan dan dapat berubah sesegera mungkin antar rilis. Lihat Pelacakan perubahan EF Core untuk informasi dan contoh selengkapnya. |
DeleteOrphansTiming |
Mendapatkan atau menetapkan nilai yang menunjukkan kapan entitas dependen/anak akan memiliki statusnya diatur ke Deleted sekali diputus dari entitas induk/utama melalui navigasi atau properti kunci asing yang diatur ke null. Nilai defaultnya adalah Immediate. |
LazyLoadingEnabled |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah properti navigasi untuk entitas terlacak akan dimuat pada akses pertama. |
QueryTrackingBehavior |
Mendapatkan atau mengatur perilaku pelacakan untuk kueri LINQ yang dijalankan terhadap konteks. Menonaktifkan pelacakan perubahan berguna untuk skenario baca-saja karena menghindari overhead pengaturan pelacakan perubahan untuk setiap instans entitas. Anda tidak boleh menonaktifkan pelacakan perubahan jika Anda ingin memanipulasi instans entitas dan mempertahankan perubahan tersebut pada database menggunakan SaveChanges(). |
Metode
AcceptAllChanges() |
Menerima semua perubahan yang dilakukan pada entitas dalam konteks. Akan diasumsikan bahwa entitas yang dilacak mewakili status database saat ini. Metode ini biasanya dipanggil oleh SaveChanges() setelah perubahan berhasil disimpan ke database. |
CascadeChanges() |
Memaksa penghapusan berjenjang segera entitas anak/dependen ketika mereka diputus dari entitas induk/utama yang diperlukan, atau entitas induk/utama yang diperlukan dihapus sendiri. Lihat DeleteBehavior. |
Clear() |
Berhenti melacak semua entitas yang saat ini dilacak. |
DetectChanges() |
Memindai instans entitas terlacak untuk mendeteksi perubahan apa pun yang dilakukan pada data instans. DetectChanges() biasanya dipanggil secara otomatis oleh konteks ketika informasi terbaru diperlukan (sebelum SaveChanges() dan saat mengembalikan informasi pelacakan perubahan). Anda biasanya hanya perlu memanggil metode ini jika Anda telah menonaktifkan AutoDetectChangesEnabled. Lihat Pelacakan perubahan EF Core untuk informasi dan contoh selengkapnya. |
Entries() |
Mengembalikan untuk setiap entitas yang EntityEntry dilacak oleh konteks. Entri menyediakan akses untuk mengubah informasi dan operasi pelacakan untuk setiap entitas. |
Entries<TEntity>() |
EntityEntry Mendapatkan untuk semua entitas dari jenis tertentu yang dilacak oleh konteks. Entri menyediakan akses untuk mengubah informasi dan operasi pelacakan untuk setiap entitas. |
HasChanges() |
Memeriksa apakah ada entitas baru, dihapus, atau diubah yang sedang dilacak sehingga perubahan ini akan dikirim ke database jika SaveChanges() atau SaveChangesAsync(CancellationToken) dipanggil. |
TrackGraph(Object, Action<EntityEntryGraphNode>) |
Mulai melacak entitas dan entitas apa pun yang dapat dijangkau dengan melintasi properti navigasinya.
Traversal rekursif sehingga properti navigasi entitas yang ditemukan juga akan dipindai.
yang ditentukan |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>) |
Mulai melacak entitas dan entitas apa pun yang dapat dijangkau dengan melintasi properti navigasinya.
Traversal rekursif sehingga properti navigasi entitas yang ditemukan juga akan dipindai.
yang ditentukan Metode ini dirancang untuk digunakan dalam skenario terputus di mana entitas diambil menggunakan satu instans konteks dan kemudian perubahan disimpan menggunakan instans konteks yang berbeda. Contohnya adalah layanan web di mana satu panggilan layanan mengambil entitas dari database dan panggilan layanan lain mempertahankan perubahan apa pun pada entitas. Setiap panggilan layanan menggunakan instans baru konteks yang dibuang saat panggilan selesai. Biasanya traversal grafik harus berhenti setiap kali entitas yang sudah dilacak ditemukan atau ketika entitas tercapai yang tidak boleh dilacak. Untuk perilaku umum ini, gunakan TrackGraph(Object, Action<EntityEntryGraphNode>) kelebihan beban. Kelebihan beban ini, di sisi lain, memungkinkan panggilan balik untuk memutuskan kapan traversal akan berakhir, tetapi onus kemudian ada pada pemanggil untuk memastikan bahwa traversal tidak akan memasuki perulangan tak terbatas. |
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>) |
Mulai melacak entitas dan entitas apa pun yang dapat dijangkau dengan melintasi properti navigasinya.
Traversal rekursif sehingga properti navigasi entitas yang ditemukan juga akan dipindai.
yang ditentukan |
Acara
DetectedAllChanges |
Peristiwa yang diaktifkan ketika setiap perubahan telah terdeteksi ke grafik entitas, baik melalui panggilan eksplisit ke DetectChanges(), atau secara otomatis, seperti bagian dari eksekusi SaveChanges() atau SaveChangesAsync(CancellationToken). |
DetectedEntityChanges |
Peristiwa yang diaktifkan ketika setiap perubahan telah terdeteksi ke satu entitas, baik melalui panggilan eksplisit ke DetectChanges() atau DetectChanges(), atau secara otomatis, seperti bagian dari eksekusi SaveChanges() atau SaveChangesAsync(CancellationToken). |
DetectingAllChanges |
Peristiwa yang diaktifkan saat mendeteksi perubahan pada grafik entitas yang akan terjadi, baik melalui panggilan eksplisit ke DetectChanges(), atau secara otomatis, seperti bagian dari eksekusi SaveChanges() atau SaveChangesAsync(CancellationToken). |
DetectingEntityChanges |
Peristiwa yang diaktifkan saat mendeteksi perubahan pada satu entitas akan terjadi, baik melalui panggilan eksplisit ke DetectChanges() atau DetectChanges(), atau secara otomatis, seperti bagian dari eksekusi SaveChanges() atau SaveChangesAsync(CancellationToken). |
StateChanged |
Peristiwa diaktifkan saat entitas yang dilacak oleh yang terkait DbContext telah berpindah dari satu EntityState ke entitas lainnya. |
StateChanging |
Peristiwa diaktifkan saat entitas yang dilacak oleh yang terkait DbContext berpindah dari satu EntityState ke entitas lainnya. |
Tracked |
Peristiwa diaktifkan saat entitas dilacak oleh konteks, baik karena dikembalikan dari kueri pelacakan, atau karena dilampirkan atau ditambahkan ke konteks. |
Tracking |
Peristiwa yang diaktifkan saat entitas akan dilacak oleh konteks, baik karena dikembalikan dari kueri pelacakan, atau karena sedang dilampirkan atau ditambahkan ke konteks. |
Implementasi Antarmuka Eksplisit
IInfrastructure<IStateManager>.Instance |
Kedaluwarsa..
Mendapatkan manajer status internal yang digunakan untuk menyimpan informasi tentang entitas yang dilacak. Properti ini ditujukan untuk digunakan oleh metode ekstensi. Ini tidak dimaksudkan untuk digunakan dalam kode aplikasi. |
IResettableService.ResetState() |
Mengatur ulang layanan sehingga dapat digunakan dari kumpulan. |
IResettableService.ResetStateAsync(CancellationToken) |
Menyediakan akses untuk mengubah informasi pelacakan dan operasi untuk instans entitas yang dilacak konteksnya. Instans kelas ini biasanya diperoleh dari ChangeTracker dan tidak dirancang untuk secara langsung dibangun dalam kode aplikasi Anda. |
Metode Ekstensi
ToDebugString(ChangeTracker, ChangeTrackerDebugStringOptions, Int32) |
Membuat representasi metadata yang dapat dibaca manusia. Peringatan: Jangan mengandalkan format string yang dikembalikan. Ini dirancang untuk penelusuran kesalahan saja dan dapat berubah sesegera mungkin antara rilis. |
GetInfrastructure<T>(IInfrastructure<T>) |
Mendapatkan nilai dari properti yang sedang disembunyikan menggunakan IInfrastructure<T>. Metode ini biasanya digunakan oleh penyedia database (dan ekstensi lainnya). Umumnya tidak digunakan dalam kode aplikasi. |
Berlaku untuk
Entity Framework