Bagikan melalui


DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metode

Definisi

Memastikan bahwa database untuk konteks ada.

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)

Parameter

cancellationToken
CancellationToken

A CancellationToken untuk mengamati sambil menunggu tugas selesai.

Mengembalikan

Tugas yang mewakili operasi penyimpanan asinkron. Hasil tugas berisi true jika database dibuat, false jika sudah ada.

Atribut

Pengecualian

Keterangan

  • Jika database ada dan memiliki tabel apa pun, maka tidak ada tindakan yang diambil. Tidak ada yang dilakukan untuk memastikan skema database kompatibel dengan model Entity Framework.
  • Jika database ada tetapi tidak memiliki tabel apa pun, maka model Kerangka Kerja Entitas digunakan untuk membuat skema database.
  • Jika database tidak ada, maka database dibuat dan model Kerangka Kerja Entitas digunakan untuk membuat skema database.

Biasanya digunakan EnsureCreatedAsync(CancellationToken) segera setelahnya EnsureDeletedAsync(CancellationToken) saat menguji atau membuat prototipe menggunakan Kerangka Kerja Entitas. Ini memastikan bahwa database dalam keadaan bersih sebelum setiap eksekusi pengujian/prototipe. Namun, perhatikan bahwa data dalam database tidak dipertahankan.

Perhatikan bahwa API ini **tidak** menggunakan migrasi untuk membuat database. Selain itu, database yang dibuat tidak dapat diperbarui nanti menggunakan migrasi. Jika Anda menargetkan database relasional dan menggunakan migrasi, maka Anda dapat menggunakan Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync untuk memastikan database dibuat menggunakan migrasi dan bahwa semua migrasi telah diterapkan.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Mengelola skema database denganAPI pembuatan EF Core dan Database untuk informasi dan contoh selengkapnya.

Berlaku untuk