Aracılığıyla paylaş


DatabaseFacade.EnsureCreatedAsync(CancellationToken) Yöntem

Tanım

Bağlam için veritabanının mevcut olduğundan emin olur.

public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")]
public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")>]
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Overridable Function EnsureCreatedAsync (Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

Parametreler

cancellationToken
CancellationToken

CancellationToken Görevin tamamlanmasını beklerken gözlemlemek için bir.

Döndürülenler

Zaman uyumsuz kaydetme işlemini temsil eden görev. Görev sonucu, veritabanının oluşturulup oluşturulmadiğini ve false zaten mevcut olup olmadığını içerirtrue.

Öznitelikler

Özel durumlar

Açıklamalar

  • Veritabanı varsa ve herhangi bir tablosu varsa, hiçbir işlem yapılmaz. Veritabanı şemasının Entity Framework modeliyle uyumlu olduğundan emin olmak için hiçbir işlem yapılmaz.
  • Veritabanı mevcutsa ancak herhangi bir tablosu yoksa, veritabanı şemasını oluşturmak için Entity Framework modeli kullanılır.
  • Veritabanı yoksa veritabanı oluşturulur ve veritabanı şemasını oluşturmak için Entity Framework modeli kullanılır.

Entity Framework kullanılarak test edilirken veya prototip oluşturulurken hemen sonra EnsureDeletedAsync(CancellationToken) kullanılması EnsureCreatedAsync(CancellationToken) yaygındır. Bu, testin/prototipin her yürütülmesinden önce veritabanının temiz bir durumda olmasını sağlar. Ancak veritabanındaki verilerin korunmadığını unutmayın.

Bu API'nin veritabanını oluşturmak için geçişleri kullanmadığını unutmayın. Ayrıca, oluşturulan veritabanı daha sonra geçişler kullanılarak güncelleştirilemez. İlişkisel bir veritabanını hedefliyor ve geçişleri kullanıyorsanız, veritabanının geçişler kullanılarak oluşturulduğundan ve tüm geçişlerin uygulandığından emin olmak için kullanabilirsiniz Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync .

Entity Framework Core, aynı DbContext örneğinde çalıştırılan birden çok paralel işlemi desteklemez. Buna hem zaman uyumsuz sorguların paralel yürütülmesi hem de birden çok iş parçacığından açık eş zamanlı kullanım dahildir. Bu nedenle, her zaman zaman uyumsuz çağrıları hemen bekleyin veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi ve örnek için bkz. DbContext iş parçacığı oluşturma sorunlarını önleme .

Daha fazla bilgi ve örnek için bkz. EF Core ile veritabanı şemalarını yönetme ve Veritabanı oluşturma API'leri .

Şunlara uygulanır