Aracılığıyla paylaş


Database Sınıf

Tanım

Bu sınıfın bir örneği bir DbContext nesneden alınır ve Bir DbContext veya bağlantının desteklendiği gerçek veritabanını yönetmek için kullanılabilir. Bu, veritabanının oluşturulmasını, silinmesini ve mevcut olup olduğunu denetlemeyi içerir. Veritabanını silme ve var olup olmadığını denetleme işleminin, bu sınıfın statik yöntemleri kullanılarak yalnızca bir bağlantı (tam bağlam olmadan) kullanılarak gerçekleştirilebileceğini unutmayın.

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
Devralma
Database
Öznitelikler

Özellikler

CommandTimeout

Tüm bağlam işlemleri için saniye olarak zaman aşımı değerini alır veya ayarlar. Varsayılan değer null değeridir; burada null, temel alınan sağlayıcının varsayılan değerinin kullanılacağını gösterir.

Connection

Bu bağlam tarafından kullanılan bağlantıyı döndürür. Bu, henüz yoksa bağlantının oluşturulmasına neden olabilir.

CurrentTransaction

Temel alınan depo bağlantısının listelendiği işlemi alır. Null olabilir.

DefaultConnectionFactory
Geçersiz.

Yalnızca bir veritabanı adından veya bağlantı dizesinden oluştururken DbConnection kullanılacak bağlantı fabrikası.

Log

tarafından DbContext oluşturulan SQL'i verilen temsilciye günlüğe kaydetmek için bu özelliği ayarlayın. Örneğin, konsolunda oturum açmak için bu özelliği olarak Write(String)ayarlayın.

Yöntemler

BeginTransaction()

Temel alınan depo bağlantısında işlem başlatır

BeginTransaction(IsolationLevel)

Belirtilen yalıtım düzeyini kullanarak temel alınan depo bağlantısında bir işlem başlatır

CompatibleWithModel(Boolean)

Veritabanının geçerli Code First modeliyle uyumlu olup olmadığını denetler.

Create()

Yedekleme bağlamında tanımlanan model için veritabanı sunucusunda yeni bir veritabanı oluşturur. Veritabanı başlatma stratejisi çalışmadan önce bu yöntemi çağırmanın bu stratejinin yürütülmesini devre dışı bırakacağını unutmayın.

CreateIfNotExists()

Yalnızca aynı ada sahip bir veritabanı sunucuda mevcut değilse, yedekleme bağlamında tanımlanan model için veritabanı sunucusunda yeni bir veritabanı oluşturur.

Delete()

Varsa veritabanı sunucusundaki veritabanını siler, aksi takdirde hiçbir şey yapmaz. Bu yöntemin başlatıcı dışından çağrılması, veritabanını başlatılmamış olarak işaretler. Bu, silindikten sonra veritabanını yeniden kullanmaya çalışılırsa, herhangi bir başlatıcı kümesinin yeniden çalıştırılacağı ve genellikle veritabanını otomatik olarak yeniden oluşturmayı deneyeceği anlamına gelir.

Delete(DbConnection)

Varsa veritabanı sunucusundaki veritabanını siler, aksi takdirde hiçbir şey yapmaz.

Delete(String)

Varsa veritabanı sunucusundaki veritabanını siler, aksi takdirde hiçbir şey yapmaz. Veritabanı bağlantısı, sınıf belgelerinde DbContext açıklandığı gibi verilen veritabanı adı veya bağlantı dizesi kullanılarak oluşturulur.

Equals(Object)

Bu sınıfın bir örneği bir DbContext nesneden alınır ve Bir DbContext veya bağlantının desteklendiği gerçek veritabanını yönetmek için kullanılabilir. Bu, veritabanının oluşturulmasını, silinmesini ve mevcut olup olduğunu denetlemeyi içerir. Veritabanını silme ve var olup olmadığını denetleme işleminin, bu sınıfın statik yöntemleri kullanılarak yalnızca bir bağlantı (tam bağlam olmadan) kullanılarak gerçekleştirilebileceğini unutmayın.

ExecuteSqlCommand(String, Object[])

Verilen DDL/DML komutunu veritabanına karşı yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommand("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommand("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Verilen DDL/DML komutunu veritabanına karşı yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommand("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommand("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Verilen DDL/DML komutunu veritabanında zaman uyumsuz olarak yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Verilen DDL/DML komutunu veritabanında zaman uyumsuz olarak yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[])

Verilen DDL/DML komutunu veritabanında zaman uyumsuz olarak yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Verilen DDL/DML komutunu veritabanında zaman uyumsuz olarak yürütür.

SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak DbParameter'a dönüştürülür. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirme = 5 WHERE Yazar = @p0", userSuppliedAuthor); Alternatif olarak, bir DbParameter oluşturabilir ve Bunu SqlQuery'ye sağlayabilirsiniz. Bu, SQL sorgu dizesinde adlandırılmış parametreleri kullanmanıza olanak tanır. Bağlam. Database.ExecuteSqlCommandAsync("UPDATE dbo. Gönderiler SET Derecelendirmesi = 5 WHERE Yazar = @author", yeni SqlParameter("@author", userSuppliedAuthor));

Exists()

Veritabanının sunucuda var olup olmadığını denetler.

Exists(DbConnection)

Veritabanının sunucuda var olup olmadığını denetler.

Exists(String)

Veritabanının sunucuda var olup olmadığını denetler. Veritabanı bağlantısı, sınıf belgelerinde DbContext açıklandığı gibi verilen veritabanı adı veya bağlantı dizesi kullanılarak oluşturulur.

GetHashCode()

Bu sınıfın bir örneği bir DbContext nesneden alınır ve Bir DbContext veya bağlantının desteklendiği gerçek veritabanını yönetmek için kullanılabilir. Bu, veritabanının oluşturulmasını, silinmesini ve mevcut olup olduğunu denetlemeyi içerir. Veritabanını silme ve var olup olmadığını denetleme işleminin, bu sınıfın statik yöntemleri kullanılarak yalnızca bir bağlantı (tam bağlam olmadan) kullanılarak gerçekleştirilebileceğini unutmayın.

GetType()

Type Geçerli örneğini alır.

Initialize(Boolean)

Bu bağlamda kayıtlı IDatabaseInitializer<TContext> öğesini çalıştırır. "Force" true olarak ayarlanırsa, başlatıcı daha önce çalıştırılıp çalıştırılmadığından bağımsız olarak çalıştırılır. Bu, bir uygulama çalışırken veritabanı silinirse ve yeniden başlatılması gerekiyorsa yararlı olabilir. "Zorla" false olarak ayarlanırsa başlatıcı yalnızca bu uygulama etki alanında bu bağlam, model ve bağlantı için henüz çalıştırılmadıysa çalıştırılır. Bu yöntem genellikle veritabanının oluşturulduğundan ve dağıtıldığından emin olmak gerektiğinde kullanılır. Bu yöntem, işlemin bir işlemin parçası olması gibi sorunlara neden olacak bir işlem başlatmadan önce gerçekleştirilir.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Verilen bağlam türü için kullanılacak veritabanı başlatıcısını ayarlar. Bir veritabanına ilk kez erişmek için belirli DbContext bir tür kullanıldığında veritabanı başlatıcısı çağrılır. Code First bağlamları için varsayılan strateji bir örneğidir CreateDatabaseIfNotExists<TContext>.

SqlQuery(Type, String, Object[])

Verilen türdeki öğeleri döndürecek bir ham SQL sorgusu oluşturur. Tür, sorgudan döndürülen sütunların adlarla eşleşen özellikleri olan herhangi bir tür veya basit bir temel tür olabilir. Türün bir varlık türü olması gerekmez. Döndürülen nesne türü bir varlık türü olsa bile bu sorgunun sonuçları hiçbir zaman bağlam tarafından izlenmez. SqlQuery(String, Object[]) Bağlam tarafından izlenen varlıkları döndürmek için yöntemini kullanın.

SqlQuery<TElement>(String, Object[])

Verilen genel türdeki öğeleri döndürecek bir ham SQL sorgusu oluşturur. Tür, sorgudan döndürülen sütunların adlarla eşleşen özellikleri olan herhangi bir tür veya basit bir temel tür olabilir. Türün bir varlık türü olması gerekmez. Döndürülen nesne türü bir varlık türü olsa bile bu sorgunun sonuçları hiçbir zaman bağlam tarafından izlenmez. SqlQuery(String, Object[]) Bağlam tarafından izlenen varlıkları döndürmek için yöntemini kullanın.

ToString()

Bu sınıfın bir örneği bir DbContext nesneden alınır ve Bir DbContext veya bağlantının desteklendiği gerçek veritabanını yönetmek için kullanılabilir. Bu, veritabanının oluşturulmasını, silinmesini ve mevcut olup olduğunu denetlemeyi içerir. Veritabanını silme ve var olup olmadığını denetleme işleminin, bu sınıfın statik yöntemleri kullanılarak yalnızca bir bağlantı (tam bağlam olmadan) kullanılarak gerçekleştirilebileceğini unutmayın.

UseTransaction(DbTransaction)

Entity Framework'ün bu dış işlem içinde komut yürütmesini istiyorsanız, kullanıcının nesnenin Database dışında oluşturulan bir veritabanı işlemini geçirmesini sağlar. Alternatif olarak, çerçevenin bu işlemle ilgili bilgilerini temizlemek için null değerini geçirin.

Şunlara uygulanır