Bagikan melalui


DbContext Kelas

Definisi

Instans DbContext mewakili kombinasi pola Unit Kerja dan Repositori sehingga dapat digunakan untuk mengkueri dari database dan mengelompokkan perubahan bersama yang kemudian akan ditulis kembali ke penyimpanan sebagai unit. DbContext secara konseptual mirip dengan ObjectContext.

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
    interface IDisposable
    interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
Warisan
DbContext
Turunan
Atribut
Penerapan

Keterangan

DbContext biasanya digunakan dengan jenis turunan yang berisi DbSet<TEntity> properti untuk entitas akar model. Set ini secara otomatis diinisialisasi ketika instans kelas turunan dibuat. Perilaku ini dapat dimodifikasi dengan menerapkan SuppressDbSetInitializationAttribute atribut ke seluruh kelas konteks turunan, atau ke properti individual di kelas . Model Data Entitas yang mendukung konteks dapat ditentukan dalam beberapa cara. Saat menggunakan pendekatan Code First, DbSet<TEntity> properti pada konteks turunan digunakan untuk membangun model berdasarkan konvensi. Metode OnModelCreating yang dilindungi dapat ditimpa untuk mengubah model ini. Kontrol lebih besar atas model yang digunakan untuk pendekatan Model First dapat diperoleh dengan membuat DbCompiledModel secara eksplisit dari DbModelBuilder dan meneruskan model ini ke salah satu konstruktor DbContext. Saat menggunakan pendekatan Database First atau Model First, Model Data Entitas dapat dibuat menggunakan Designer Entitas (atau secara manual melalui pembuatan file EDMX) dan kemudian model ini dapat ditentukan menggunakan string koneksi entitas atau EntityConnection objek. Koneksi ke database (termasuk nama database) dapat ditentukan dalam beberapa cara. Jika konstruktor DbContext tanpa parameter dipanggil dari konteks turunan, maka nama konteks turunan digunakan untuk menemukan string koneksi dalam file app.config atau web.config. Jika tidak ada string koneksi yang ditemukan, maka nama diteruskan ke DefaultConnectionFactory yang terdaftar di Database kelas . Pabrik koneksi kemudian menggunakan nama konteks sebagai nama database dalam string koneksi default. (String koneksi default ini menunjuk ke .\SQLEXPRESS pada komputer lokal kecuali DefaultConnectionFactory yang berbeda terdaftar.) Alih-alih menggunakan nama konteks turunan, nama koneksi/database juga dapat ditentukan secara eksplisit dengan meneruskan nama ke salah satu konstruktor DbContext yang mengambil string. Nama juga dapat diteruskan dalam formulir "name=myname", dalam hal ini nama harus ditemukan dalam file konfigurasi atau pengecualian akan dilemparkan. Perhatikan bahwa koneksi yang ditemukan dalam file app.config atau web.config dapat menjadi string koneksi database normal (bukan string koneksi Kerangka Kerja Entitas khusus) dalam hal ini DbContext akan menggunakan Kode Pertama. Namun, jika koneksi yang ditemukan dalam file konfigurasi adalah string koneksi Kerangka Kerja Entitas khusus, maka DbContext akan menggunakan Database/Model Pertama dan model yang ditentukan dalam string koneksi akan digunakan. DbConnection yang sudah ada atau dibuat secara eksplisit juga dapat digunakan alih-alih nama database/koneksi. DbModelBuilderVersionAttribute dapat diterapkan ke kelas yang berasal dari DbContext untuk mengatur versi konvensi yang digunakan oleh konteks saat membuat model. Jika tidak ada atribut yang diterapkan, versi konvensi terbaru akan digunakan.

Konstruktor

DbContext()

Membuat instans konteks baru menggunakan konvensi untuk membuat nama database tempat koneksi akan dibuat. Nama menurut konvensi adalah nama lengkap (namespace + nama kelas) dari kelas konteks turunan. Lihat keterangan kelas tentang bagaimana ini digunakan untuk membuat koneksi.

DbContext(DbCompiledModel)

Membuat instans konteks baru menggunakan konvensi untuk membuat nama database tempat koneksi akan dibuat, dan menginisialisasinya dari model yang diberikan. Nama menurut konvensi adalah nama lengkap (namespace + nama kelas) dari kelas konteks turunan. Lihat keterangan kelas tentang bagaimana ini digunakan untuk membuat koneksi.

DbContext(DbConnection, Boolean)

Membuat instans konteks baru menggunakan koneksi yang ada untuk menyambungkan ke database. Koneksi tidak akan dibuang ketika konteks dibuang jika contextOwnsConnection adalah false.

DbContext(DbConnection, DbCompiledModel, Boolean)

Membuat instans konteks baru menggunakan koneksi yang ada untuk menyambungkan ke database, dan menginisialisasinya dari model tertentu. Koneksi tidak akan dibuang ketika konteks dibuang jika contextOwnsConnection adalah false.

DbContext(ObjectContext, Boolean)

Membuat instans konteks baru di sekitar ObjectContext yang ada.

DbContext(ObjectContext, Boolean)

Membuat instans konteks baru di sekitar ObjectContext yang ada.

DbContext(String)

Membuat instans konteks baru menggunakan string yang diberikan sebagai nama atau string koneksi untuk database tempat koneksi akan dibuat. Lihat keterangan kelas tentang bagaimana ini digunakan untuk membuat koneksi.

DbContext(String, DbCompiledModel)

Membuat instans konteks baru menggunakan string yang diberikan sebagai nama atau string koneksi untuk database tempat koneksi akan dibuat, dan menginisialisasinya dari model yang diberikan. Lihat keterangan kelas tentang bagaimana ini digunakan untuk membuat koneksi.

Properti

ChangeTracker

Menyediakan akses ke fitur konteks yang menangani pelacakan perubahan entitas.

Configuration

Menyediakan akses ke opsi konfigurasi untuk konteks.

Database

Membuat instans Database untuk konteks ini yang memungkinkan pemeriksaan pembuatan/penghapusan/keberadaan untuk database yang mendasar.

Metode

Dispose()

Memanggil metode Buang yang dilindungi.

Dispose(Boolean)

Membuang konteks. Yang mendasar ObjectContext juga dibuang jika dibuat adalah oleh konteks atau kepemilikan ini diteruskan ke konteks ini ketika konteks ini dibuat. Koneksi ke database (DbConnection objek) juga dibuang jika dibuat adalah oleh konteks atau kepemilikan ini diteruskan ke konteks ini ketika konteks ini dibuat.

Entry(Object)

Mendapatkan objek untuk entitas tertentu yang DbEntityEntry menyediakan akses ke informasi tentang entitas dan kemampuan untuk melakukan tindakan pada entitas.

Entry<TEntity>(TEntity)

Mendapatkan objek untuk entitas tertentu yang DbEntityEntry<TEntity> menyediakan akses ke informasi tentang entitas dan kemampuan untuk melakukan tindakan pada entitas.

Equals(Object)

Instans DbContext mewakili kombinasi pola Unit Kerja dan Repositori sehingga dapat digunakan untuk mengkueri dari database dan mengelompokkan perubahan bersama yang kemudian akan ditulis kembali ke penyimpanan sebagai unit. DbContext secara konseptual mirip dengan ObjectContext.

GetHashCode()

Instans DbContext mewakili kombinasi pola Unit Kerja dan Repositori sehingga dapat digunakan untuk mengkueri dari database dan mengelompokkan perubahan bersama yang kemudian akan ditulis kembali ke penyimpanan sebagai unit. DbContext secara konseptual mirip dengan ObjectContext.

GetType()

Instans DbContext mewakili kombinasi pola Unit Kerja dan Repositori sehingga dapat digunakan untuk mengkueri dari database dan mengelompokkan perubahan bersama yang kemudian akan ditulis kembali ke penyimpanan sebagai unit. DbContext secara konseptual mirip dengan ObjectContext.

GetValidationErrors()

Memvalidasi entitas yang dilacak dan mengembalikan Koleksi DbEntityValidationResult yang berisi hasil validasi.

OnModelCreating(DbModelBuilder)

Metode ini dipanggil ketika model untuk konteks turunan telah diinisialisasi, tetapi sebelum model dikunci dan digunakan untuk menginisialisasi konteks. Implementasi default dari metode ini tidak melakukan apa-apa, tetapi dapat ditimpa di kelas turunan sehingga model dapat dikonfigurasi lebih lanjut sebelum dikunci.

SaveChanges()

Menyimpan semua perubahan yang dibuat dalam konteks ini ke database yang mendasar.

SaveChangesAsync()

Secara asinkron menyimpan semua perubahan yang dibuat dalam konteks ini ke database yang mendasar.

SaveChangesAsync(CancellationToken)

Secara asinkron menyimpan semua perubahan yang dibuat dalam konteks ini ke database yang mendasar.

Set(Type)

Mengembalikan instans non-generik DbSet untuk akses ke entitas dari jenis yang diberikan dalam konteks dan penyimpanan yang mendasar.

Set<TEntity>()

Mengembalikan instans untuk akses ke entitas dari jenis yang diberikan dalam konteks dan penyimpanan yang mendasar DbSet<TEntity> .

ShouldValidateEntity(DbEntityEntry)

Titik ekstensi yang memungkinkan pengguna untuk mengambil alih perilaku default hanya memvalidasi entitas yang ditambahkan dan dimodifikasi.

ToString()

Instans DbContext mewakili kombinasi pola Unit Kerja dan Repositori sehingga dapat digunakan untuk mengkueri dari database dan mengelompokkan perubahan bersama yang kemudian akan ditulis kembali ke penyimpanan sebagai unit. DbContext secara konseptual mirip dengan ObjectContext.

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

Titik ekstensi yang memungkinkan pengguna untuk menyesuaikan validasi entitas atau memfilter hasil validasi. Dipanggil oleh GetValidationErrors().

Implementasi Antarmuka Eksplisit

IObjectContextAdapter.ObjectContext

Mengembalikan ObjectContext Kerangka Kerja Entitas yang mendasar konteks ini.

Berlaku untuk