如何让两个不同的用户处理 EF 核心迁移和 CRUD

how to have two different users to handle EF core migration and CRUD

我正在寻找一种解决方案来处理两个不同的 SQL 用户,一个是执行 EF 核心迁移的超级用户,另一个是处理应用程序 CRUD 的低权限用户。但是,解决方案是对应用程序进行 docker 化,SQL 用户应该能够作为环境变量传递。

您可以尝试重写 DbContext 中的 OnConfiguring 方法,在那里您可以根据某些条件设置不同的连接字符串(不同的用户)。

.AddDbContext 扩展方法将 DbContext 注册为作用域服务,因此您应该能够处理 DbContext 的每个实例化的目的。

我会试着给你一些想法:

public class ApplicationDbContext : IdentityDbContext
{
    private readonly IConfiguration configuration;
    public ApplicationDbContext(IConfiguration configuration)
    {
        this.configuration = configuration;
    }

    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        bool someCondition = true;
        builder.UseSqlServer(configuration.GetConnectionString(someCondition ? "SuperUserConnectionString" : "CrudConnectionString"));
    }
}