我正在研究多层架构,在 MVC 中支持每个租户的多个数据库。我需要根据登录到数据层的用户创建 DBContext。我应该如何创建通用 DBContext 并根据用户设置连接字符串?
以下是从主机数据库获取连接字符串并将其设置为客户端数据库的代码。(在数据/存储库层)
private static string GetConnectionString()
{
int tenantId;
HostDBContext hostContext = new HostDBContext();
//Get Tenant and set ID to get required connection string
tenantId = 1; //Get Tenant Id from session
var tenantDetails = hostContext.TenantDetails.Find(tenantId);
if (tenantDetails != null)
{
return tenantDetails.connectionstring;
}
return "default connection string";
}