代码之家  ›  专栏  ›  技术社区  ›  Samra

Owin ApplicationDbContext未更新

  •  0
  • Samra  · 技术社区  · 8 年前

    应用程序上下文

     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、 考虑历史/细节 this post

    1 回复  |  直到 8 年前
        1
  •  0
  •   Samra    8 年前

    here

    问题是在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>();
    
    推荐文章