Dil

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 bir görev. Görev sonucu, veritabanının oluşturulup oluşturulmamış false olup olmadığını içerirtrue.

Özellikler

Özel durumlar

Açıklamalar

  • Veritabanı varsa ve tabloları 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ı varsa 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 kullanarak test veya prototip oluştururken hemen ardından EnsureDeletedAsync(CancellationToken) kullanılması EnsureCreatedAsync(CancellationToken) yaygın bir durumdur. Bu, testin/prototipin her yürütülmesinden önce veritabanının temiz 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ı hedefleyip 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