我有一个用于数据访问层的父类,该类从sharedappsettings中读取连接字符串。对于每个请求,我想动态设置连接字符串的方法可能是基于标头参数的动作过滤器。怎么做?
对于使用请求标题设置连接字符串,您可以像在IHttpContextAccessor
中尝试DbContext
一样>>
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
private readonly HttpContext httpContext;
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IHttpContextAccessor httpContextAccessor)
: base(options)
{
httpContext = httpContextAccessor.HttpContext;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var connection = httpContext.Request.Headers["Connectionstring"];
optionsBuilder.UseSqlServer(connection);
}
}