【问题标题】:How to run Update Database using Code first in Entity Framework Core?如何在 Entity Framework Core 中首先使用代码运行更新数据库?
【发布时间】:2018-06-20 11:12:42
【问题描述】:

我从 Visual Studio 运行 Update-Database 来创建数据库,它工作正常。我已经在生产服务器上发布了该应用程序。但我不能在那里运行Update-Database。那么如何在没有visual studio的服务器上完成呢?

我想在应用程序第一次启动时创建它。但我没有得到任何参考或示例代码。

我使用的是 .net core 2.0。

【问题讨论】:

标签: ef-code-first entity-framework-core aspnetboilerplate


【解决方案1】:

首先我想警告你,我不知道下面的代码可能会产生什么后果,因为我对 Abp 架构了解不够。

在 ProjectName.Web.Mvc 项目的 ConfigureServices 方法中,添加以下代码:

public IServiceProvider ConfigureServices(IServiceCollection services) {

    // other stuff

    string connectionString = _appConfiguration
            .GetConnectionString("Default");

    services.AddDbContext<YouDbContextTypeName>(opt => 
        opt.UseSqlServer(connectionString)
    );

    // other stuff
}

在Configure方法的同一个文件中,添加如下代码:

public void Configure(
    IApplicationBuilder app, 
    IHostingEnvironment env, 
    YouDbContextTypeName context) {

    context.Database.Migrate();

    // other stuff
}

【讨论】:

    【解决方案2】:

    您可以在您的“测试”数据库中运行针对您的开发数据库所做的更改脚本。要生成脚本,您可以运行它,它会创建一个文件以作为部署阶段的一部分运行。

    dotnet ef migrations script -i -o "C:\<your-path>\<your-filename>.sql"
    

    生成的脚本本质上是所有“向上”迁移的累积。该脚本是“幂等的”,因为它仅在迁移尚未应用于数据库时才应用迁移。

    参考号:dotnet CLI

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2018-02-24
      相关资源
      最近更新 更多