cari

Rumah  >  Soal Jawab  >  teks badan

C# - Teras Rangka Kerja Entiti - Penjanaan pangkalan data automatik

<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粉520204081P粉520204081513 hari yang lalu532

membalas semua(1)saya akan balas

  • P粉986028039

    P粉9860280392023-08-27 16:17:15

    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.

    balas
    0
  • Batalbalas