Owin ApplicationDbContext 没有更新

Owin ApplicationDbContext did not update

我想根据用户在登录屏幕输入的代码在运行时更改我的连接字符串。我做了以下

ApplicationDbContext

 public static ApplicationDbContext Create(string scCode){
        return new ApplicationDbContext("name=GEContext_" + scCode);
    } 

登录时,我按如下方式更改连接字符串

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            try
            {
                System.Web.HttpContext.Current.Session["SchoolCode"] = model.SchoolCode;

                var appDbContext = ApplicationDbContext.Create(model.SchoolCode);
                HttpContext.GetOwinContext().Set<ApplicationDbContext>(appDbContext);
 ....
   }
 }
}

现在它仍然引用原始数据库...我缺少什么?

P.S。对于 history/detail 考虑

嗨,我从

那里得到了答案

问题出在我们需要指定默认数据库的 ApplicationDbContext 中,而在我的场景中,默认数据库必须更改。 所以我用

改变了它
 var appDbContext = ApplicationDbContext.Create(System.Web.HttpContext.Current.Session["SchoolCode"].ToString());//new ApplicationDbContext("name=GEContext", System.Web.HttpContext.Current.Session["SchoolCode"].ToString());

 HttpContext.GetOwinContext().Set<ApplicationDbContext>(appDbContext);
 HttpContext.GetOwinContext().Set<ApplicationUserManager>(new ApplicationUserManager(new UserStore<ApplicationUser, Role, int, UserLogin, UserRole, UserClaim>(appDbContext)));

 return HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();