首页  >  问答  >  正文

C# - Entity Framework Core - 自动化数据库生成

<p>当我第一次运行我的桌面应用程序时,我想要自动创建数据库和表结构。</p><p> 我找不到任何关于EFCore等效方法的示例或文档。 </p><p> 我按照这份文档中的说明进行了所有操作: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core-example.html </p><p> 但我仍然遇到问题:在Microsoft.Data.SqlClient.dll中抛出异常:'Microsoft.Data.SqlClient.SqlException',并且数据库为空 :( 如果您能帮助我,请告诉我。 </p><p></p> <pre class="brush:php;toolbar:false;">protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { try { optionsBuilder.UseMySQL("server=localhost;userid=root;password=topSecret;database=kartoteka-pracownicza"); } catch (MySqlException ex) { switch (ex.Number) { case 0: MessageBox.Show("无法连接到服务器,请联系管理员"); break; case 1045: MessageBox.Show("无效的用户名/密码,请重试"); break; } }; }</pre></p>
P粉520204081P粉520204081420 天前414

全部回复(1)我来回复

  • P粉986028039

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

    你好,如果你使用迁移,你可以在你的 Startup.cs 中添加类似以下的内容:

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

    如果你不使用迁移,你可以将 Migrate(); 替换为 EnsureCreated(); 来使用你的数据库上下文。

    回复
    0
  • 取消回复