0
omital created
Hi, I set application to use different db for each tenant. How I can read data from tenant's db that requested login, in Login action?
public async Task<JsonResult> Login(LoginViewModel loginModel, string returnUrl = "", string returnUrlHash = "")
{
CheckModelState();
var loginResult = await GetLoginResultAsync(
loginModel.UsernameOrEmailAddress,
loginModel.Password,
loginModel.TenancyName
);
await SignInAsync(loginResult.User, loginResult.Identity, loginModel.RememberMe);
if (string.IsNullOrWhiteSpace(returnUrl))
{
returnUrl = Request.ApplicationPath;
}
if (!string.IsNullOrWhiteSpace(returnUrlHash))
{
returnUrl = returnUrl + returnUrlHash;
}
var book = _bookRepo.GetAll().SingleOrDefault();
return Json(new MvcAjaxResponse { TargetUrl = returnUrl });
}
In above code I want read Book item from tenant's db that request to login
2 Answer(s)
-
0
Hi,
First you need to find tenantId with given tenancyName from host database. Then you can switch to tenant context like this.
using (CurrentUnitOfWork.SetTenantId(tenantId)) { ...... }
Database operations between using statement will run on tenant database with id: tenantId. Of course, you can switch agian to another tenant or host context in using statement.
-
0
Thank you man. I think, access to unitOfWork in accountController is not available?! :lol: