在 multi-tenant 应用中,租户名称显示为空白
In a multi-tenant app, the tenant name shows as blank
在 ABP v4.4 ApplicationService
中,我有一个 using()
块更改为另一个租户以对该租户内的用户帐户执行一些操作。
租户更改正常进行,CurrentTenant
object 显示正确的 ID,尽管 CurrentTenant.Name
属性 显示 null
值。包括用户帐户操作在内的其他一切都工作正常,所以实际上只是租户名称没有显示,我需要在此块中访问它。
在数据库中,租户名称值被指定为 MY TENANT
,当通过 CurrentTenant.Name
访问时实际上不应该是 null
(下面的屏幕截图显示了相应的租户 ID)。
知道这里出了什么问题吗?我在这里能想到的唯一解决方法是使用 ITenantRepository
从感觉不对的数据库中获取值。
调用时传递名字CurrentTenant.Change
如果你想设置它:
var tenant = await _tenantRepository.GetAsync(Guid.Parse(tenantId));
using (CurrentTenant.Change(tenant.Id, tenant.Name))
{
var tenantName = CurrentTenant.Name;
// ...
}
CurrentTenant.Change
简单地将给定的 id
和 name
设置为当前范围:
public IDisposable Change(Guid? id, string name = null)
{
return SetCurrent(id, name);
}
private IDisposable SetCurrent(Guid? tenantId, string name = null)
{
var parentScope = _currentTenantAccessor.Current;
_currentTenantAccessor.Current = new BasicTenantInfo(tenantId, name);
return new DisposeAction(() =>
{
_currentTenantAccessor.Current = parentScope;
});
}
在 ABP v4.4 ApplicationService
中,我有一个 using()
块更改为另一个租户以对该租户内的用户帐户执行一些操作。
租户更改正常进行,CurrentTenant
object 显示正确的 ID,尽管 CurrentTenant.Name
属性 显示 null
值。包括用户帐户操作在内的其他一切都工作正常,所以实际上只是租户名称没有显示,我需要在此块中访问它。
在数据库中,租户名称值被指定为 MY TENANT
,当通过 CurrentTenant.Name
访问时实际上不应该是 null
(下面的屏幕截图显示了相应的租户 ID)。
知道这里出了什么问题吗?我在这里能想到的唯一解决方法是使用 ITenantRepository
从感觉不对的数据库中获取值。
调用时传递名字CurrentTenant.Change
如果你想设置它:
var tenant = await _tenantRepository.GetAsync(Guid.Parse(tenantId));
using (CurrentTenant.Change(tenant.Id, tenant.Name))
{
var tenantName = CurrentTenant.Name;
// ...
}
CurrentTenant.Change
简单地将给定的 id
和 name
设置为当前范围:
public IDisposable Change(Guid? id, string name = null) { return SetCurrent(id, name); } private IDisposable SetCurrent(Guid? tenantId, string name = null) { var parentScope = _currentTenantAccessor.Current; _currentTenantAccessor.Current = new BasicTenantInfo(tenantId, name); return new DisposeAction(() => { _currentTenantAccessor.Current = parentScope; }); }