C# - Teras Rangka Kerja Entiti - Penjanaan pangkalan data automatik
P粉520204081
P粉520204081 2023-08-26 17:41:13
0
1
471
<p>Apabila saya menjalankan aplikasi desktop saya buat kali pertama, saya mahu pangkalan data dan struktur jadual dibuat secara automatik. </p><p> Saya tidak dapat mencari sebarang contoh atau dokumentasi mengenai kaedah yang setara dalam EFCore. </p><p> Saya melakukan segala-galanya seperti yang diterangkan dalam dokumen ini: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core-example.html </p><p> Tetapi saya masih menghadapi masalah: Pengecualian: 'Microsoft.Data.SqlClient.SqlException' dibuang dalam Microsoft.Data.SqlClient.dll dan pangkalan data kosong :( Jika anda boleh membantu saya sila beritahu saya. </p><p></p> <pre class="brush:php;toolbar:false;">protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { cubalah { optionsBuilder.UseMySQL("server=localhost;userid=root;password=topSecret;database=kartoteka-pracownicza"); } tangkap (MySqlException ex) { suis(cth.Nombor) { kes 0: MessageBox.Show("Tidak dapat menyambung ke pelayan, sila hubungi pentadbir"); pecah; kes 1045: MessageBox.Show("Nama pengguna/kata laluan tidak sah, sila cuba lagi"); pecah; } }; }</pre></p>
P粉520204081
P粉520204081

membalas semua(1)
P粉986028039

Hai, jika anda menggunakan migrasi, anda boleh menambah sesuatu seperti ini pada Startup.cs anda:

public void Configure(IApplicationBuilder app)
    {
         using (var serviceScope = 
         app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
         {
               var context = serviceScope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
               context.Database.Migrate();
         }
    }

Jika anda tidak menggunakan migrasi, anda boleh menggunakan Migrate(); 替换为 EnsureCreated(); untuk menggunakan konteks pangkalan data anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan