Aracılığıyla paylaş


DbContext Sınıf

Tanım

DbContext örneği, çalışma birimi ve depo desenlerinin bir bileşimini temsil eder; böylece bir veritabanından sorgulama yapmak ve değişiklikleri gruplayarak bir birim olarak depoya geri yazılacaktır. DbContext kavramsal olarak ObjectContext'e benzer.

[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
Devralma
DbContext
Türetilmiş
Öznitelikler
Uygulamalar

Açıklamalar

DbContext genellikle modelin kök varlıklarının özelliklerini içeren DbSet<TEntity> türetilmiş bir türle kullanılır. Türetilmiş sınıfın örneği oluşturulduğunda bu kümeler otomatik olarak başlatılır. Bu davranış, özniteliği türetilmiş bağlam sınıfının tamamına veya sınıftaki tek tek özelliklere uygulanarak SuppressDbSetInitializationAttribute değiştirilebilir. Bağlamı arka planlayan Varlık Veri Modeli çeşitli yollarla belirtilebilir. Code First yaklaşımı kullanılırken, türetilen bağlamdaki DbSet<TEntity> özellikler kurala göre model oluşturmak için kullanılır. Korumalı OnModelCreating yöntemi, bu modeli değiştirmek için geçersiz kılınabilir. Model First yaklaşımı için kullanılan model üzerinde daha fazla denetim elde etmek için bir'den DbModelBuilder açıkça bir DbCompiledModel oluşturulup bu modeli DbContext oluşturucularından birine geçirebilirsiniz. Database First veya Model First yaklaşımı kullanılırken Varlık Veri Modeli, Varlık Tasarım Aracı kullanılarak oluşturulabilir (veya EDMX dosyası oluşturarak el ile) ve ardından bu model varlık bağlantı dizesi veya bir EntityConnection nesne kullanılarak belirtilebilir. Veritabanı bağlantısı (veritabanının adı dahil) çeşitli yollarla belirtilebilir. Parametresiz DbContext oluşturucu türetilmiş bir bağlamdan çağrılırsa, türetilen bağlamın adı app.config veya web.config dosyasında bir bağlantı dizesi bulmak için kullanılır. Bağlantı dizesi bulunmazsa, ad sınıfında kayıtlı DefaultConnectionFactory'ye Database geçirilir. Ardından bağlantı fabrikası varsayılan bağlantı dizesinde veritabanı adı olarak bağlam adını kullanır. (Bu varsayılan bağlantı dizesi, farklı bir DefaultConnectionFactory kaydedilmediği sürece yerel makinede .\SQLEXPRESS'e işaret eder.) Türetilmiş bağlam adını kullanmak yerine, bağlantı/veritabanı adı bir dize alan DbContext oluşturucularından birine geçirilerek açıkça belirtilebilir. Ad "name=myname" biçiminde de geçirilebilir; bu durumda adın yapılandırma dosyasında bulunması gerekir, aksi takdirde bir özel durum oluşturulur. app.config veya web.config dosyasında bulunan bağlantının normal bir veritabanı bağlantı dizesi (özel bir Entity Framework bağlantı dizesi değil) olabileceğini ve bu durumda DbContext'in Önce Kod kullanacağını unutmayın. Ancak, yapılandırma dosyasında bulunan bağlantı özel bir Entity Framework bağlantı dizesiyse, DbContext Database/Model First kullanır ve bağlantı dizesinde belirtilen model kullanılır. Veritabanı/bağlantı adı yerine mevcut veya açıkça oluşturulmuş bir DbConnection da kullanılabilir. , DbModelBuilderVersionAttribute bir model oluştururken bağlam tarafından kullanılan kuralların sürümünü ayarlamak için DbContext'ten türetilen bir sınıfa uygulanabilir. Öznitelik uygulanmazsa kuralların en son sürümü kullanılır.

Oluşturucular

DbContext()

Bağlantı kurulacak veritabanının adını oluşturmak için kuralları kullanarak yeni bir bağlam örneği oluşturur. Kurala göre ad, türetilmiş bağlam sınıfının tam adıdır (ad alanı + sınıf adı). Bunun bağlantı oluşturmak için nasıl kullanıldığına ilişkin sınıf açıklamalarına bakın.

DbContext(DbCompiledModel)

Bağlantı kurulacak veritabanının adını oluşturmak için kuralları kullanarak yeni bir bağlam örneği oluşturur ve bunu verilen modelden başlatır. Kurala göre ad, türetilmiş bağlam sınıfının tam adıdır (ad alanı + sınıf adı). Bunun bağlantı oluşturmak için nasıl kullanıldığına ilişkin sınıf açıklamalarına bakın.

DbContext(DbConnection, Boolean)

Veritabanına bağlanmak için mevcut bağlantıyı kullanarak yeni bir bağlam örneği oluşturur. olduğunda contextOwnsConnectionfalsebağlam atıldığında bağlantı atılmaz.

DbContext(DbConnection, DbCompiledModel, Boolean)

Veritabanına bağlanmak için var olan bağlantıyı kullanarak yeni bir bağlam örneği oluşturur ve bunu verilen modelden başlatır. olduğunda contextOwnsConnectionfalsebağlam atıldığında bağlantı atılmaz.

DbContext(ObjectContext, Boolean)

Var olan bir ObjectContext'in etrafında yeni bir bağlam örneği oluşturur.

DbContext(ObjectContext, Boolean)

Var olan bir ObjectContext'in etrafında yeni bir bağlam örneği oluşturur.

DbContext(String)

Verilen dizeyi, bağlantının yapılacağı veritabanının adı veya bağlantı dizesi olarak kullanarak yeni bir bağlam örneği oluşturur. Bunun bağlantı oluşturmak için nasıl kullanıldığına ilişkin sınıf açıklamalarına bakın.

DbContext(String, DbCompiledModel)

Bağlantının yapılacağı veritabanının adı veya bağlantı dizesi olarak verilen dizeyi kullanarak yeni bir bağlam örneği oluşturur ve bunu verilen modelden başlatır. Bunun bağlantı oluşturmak için nasıl kullanıldığına ilişkin sınıf açıklamalarına bakın.

Özellikler

ChangeTracker

Varlıkların değişiklik izlemesiyle ilgilenen bağlam özelliklerine erişim sağlar.

Configuration

Bağlam için yapılandırma seçeneklerine erişim sağlar.

Database

Bu bağlam için, temel alınan veritabanı için oluşturma/silme/varlık denetimlerine olanak tanıyan bir Veritabanı örneği oluşturur.

Yöntemler

Dispose()

Korumalı Dispose yöntemini çağırır.

Dispose(Boolean)

Bağlamı atılır. Temel alınan ObjectContext da oluşturulduysa bu bağlam tarafından atılır veya bu bağlam oluşturulduğunda sahiplik bu bağlama geçirilir. Veritabanı (DbConnection nesne) bağlantısı da oluşturulduysa bu bağlam tarafından atılır veya bu bağlam oluşturulduğunda sahiplik bu bağlama geçirilir.

Entry(Object)

Varlık hakkındaki bilgilere erişim ve varlık üzerinde eylem gerçekleştirme olanağı sağlayan belirli varlık için bir DbEntityEntry nesnesi alır.

Entry<TEntity>(TEntity)

Varlık hakkındaki bilgilere erişim ve varlık üzerinde eylem gerçekleştirme olanağı sağlayan belirli varlık için bir DbEntityEntry<TEntity> nesnesi alır.

Equals(Object)

DbContext örneği, çalışma birimi ve depo desenlerinin bir bileşimini temsil eder; böylece bir veritabanından sorgulama yapmak ve değişiklikleri gruplayarak bir birim olarak depoya geri yazılacaktır. DbContext kavramsal olarak ObjectContext'e benzer.

GetHashCode()

DbContext örneği, çalışma birimi ve depo desenlerinin bir bileşimini temsil eder; böylece bir veritabanından sorgulama yapmak ve değişiklikleri gruplayarak bir birim olarak depoya geri yazılacaktır. DbContext kavramsal olarak ObjectContext'e benzer.

GetType()

DbContext örneği, çalışma birimi ve depo desenlerinin bir bileşimini temsil eder; böylece bir veritabanından sorgulama yapmak ve değişiklikleri gruplayarak bir birim olarak depoya geri yazılacaktır. DbContext kavramsal olarak ObjectContext'e benzer.

GetValidationErrors()

İzlenen varlıkları doğrular ve doğrulama sonuçları içeren bir Koleksiyon DbEntityValidationResult döndürür.

OnModelCreating(DbModelBuilder)

Türetilmiş bir bağlam için model başlatıldığında, ancak model kilitlenip bağlamı başlatmak için kullanılmadan önce bu yöntem çağrılır. Bu yöntemin varsayılan uygulaması hiçbir şey yapmaz, ancak modelin kilitlenmeden önce daha fazla yapılandırılabilmesi için türetilmiş bir sınıfta geçersiz kılınabilir.

SaveChanges()

Bu bağlamda yapılan tüm değişiklikleri temel alınan veritabanına kaydeder.

SaveChangesAsync()

Bu bağlamda yapılan tüm değişiklikleri zaman uyumsuz olarak temel alınan veritabanına kaydeder.

SaveChangesAsync(CancellationToken)

Bu bağlamda yapılan tüm değişiklikleri zaman uyumsuz olarak temel alınan veritabanına kaydeder.

Set(Type)

Bağlamda ve temel alınan depoda verilen türdeki varlıklara erişim için genel DbSet olmayan bir örnek döndürür.

Set<TEntity>()

Bağlamda ve temel alınan depoda verilen türdeki varlıklara erişim için bir DbSet<TEntity> örnek döndürür.

ShouldValidateEntity(DbEntityEntry)

Kullanıcının yalnızca eklenen ve değiştirilen varlıkları doğrulamaya yönelik varsayılan davranışı geçersiz kılmasına olanak sağlayan uzantı noktası.

ToString()

DbContext örneği, çalışma birimi ve depo desenlerinin bir bileşimini temsil eder; böylece bir veritabanından sorgulama yapmak ve değişiklikleri gruplayarak bir birim olarak depoya geri yazılacaktır. DbContext kavramsal olarak ObjectContext'e benzer.

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

Kullanıcının bir varlığın doğrulamasını özelleştirmesine veya doğrulama sonuçlarını filtrelemesine olanak sağlayan uzantı noktası. tarafından GetValidationErrors()çağrılır.

Belirtik Arabirim Kullanımları

IObjectContextAdapter.ObjectContext

Bu bağlamın temelini oluşturan Entity Framework ObjectContext'i döndürür.

Şunlara uygulanır