migration - 在应用程序启动时使用Entity Framework核心运行数据库迁移

标签 migration asp.net-core asp.net-core-mvc entity-framework-core

是否可以配置StartUp.csproject.json在应用程序启动时使用Entity Framework Core运行数据库迁移?

现在,我有执行此任务的中间件,但是它似乎会对性能产生负面影响,因为正在检查每个收到的请求的数据库。

public class EntityFrameworkUpdateDatabaseMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ApplicationDbContext _dbContext;

    public EntityFrameworkUpdateDatabaseMiddleware(RequestDelegate next, ApplicationDbContext dbContext)
    {
        _next = next;
        _dbContext = dbContext;
    }

    public async Task Invoke(HttpContext context)
    {
        await _dbContext.Database.MigrateAsync();
        await _next.Invoke(context);
    }
}

最佳答案

您可以在Startup.cs的config方法中执行此操作。最简单的方法是这样的:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>();

    // add other services        
}

public void Configure(IApplicationBuilder app, ApplicationDbContext db)
{
    db.Database.Migrate();

    // configure other services
}

关于migration - 在应用程序启动时使用Entity Framework核心运行数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282138/

相关文章:

c# - Google 数据 API 授权重定向 URI 不匹配

azure - 无法在 Azure 应用服务部署中心选择 GitHub 组织

ruby-on-rails - 合并 Rails 应用程序自上次更新以来的数据库记录

ruby-on-rails - 如果我将sqlite3数据库中的字段类型从字符串更改为文本,是否会丢失该字段中的数据?

git - 如何在存储库上使用 svn2git

android - 迁移对 Android X : Are versions consistent across Modules? 的支持

空 ASP.Net Core 项目中的 JavaScript 智能感知

c# - EF 在数据库中创建关系 id 列,该列不是模型的一部分

c# - Request.Headers ["Referer"]不存在

asp.net-core - 何时在 ASP.NET core MVC 中使用 ResultFilter