【问题标题】:Set tenant settings设置租户设置
【发布时间】:2018-01-04 10:00:02
【问题描述】:

我正在开发一个多租户应用程序,我的应用程序有一个Currency 设置。

public class MyAppSettingProvider : SettingProvider
{
    public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
    {
        return new[]
        {
            new SettingDefinition(MyAppSettingDefinition.Currency, string.Empty, scopes: SettingScopes.Tenant, isVisibleToClients: true),
        };
    }
}

public static class MyAppSettingDefinition
{
    public const string Currency = "MyApp.UserManagement.Currency";
}

我已将其添加到PreInitialize() 方法中,如下所示。

Configuration.Settings.Providers.Add<MyAppSettingProvider>();

我的问题

现在,此设置只为默认租户创建条目,并没有为其他租户创建条目。

所以,我的问题是:

  • 如何设置租户特定设置?

  • 它会在租户创建时间吗?如果是,那我可以再次使用MyAppSettingProvider 类吗?

  • 我可以删除默认租户吗?因为主机没有租户 ID,而我有固定数量的租户,不需要默认值。

指导我,什么是支持样板架构的最佳实践..

【问题讨论】:

  • 我的主要问题是在播种机中,以前的开发人员添加了默认租户的静态租户 ID。

标签: c# settings multi-tenant aspnetboilerplate


【解决方案1】:

如何设置租户特定设置?

注入ISettingManager 并执行:

_settingManager.ChangeSettingForTenantAsync(tenantId, MyAppSettingDefinition.Currency, "$");

它会在租户创建时间吗?如果是,那我可以再次使用 MyAppSettingProvider 类吗?

设置不会自动创建。您可以在TenantAppServiceCreate 方法中进行配置。 您可以(但不应该)使用MyAppSettingProviderISettingManager 是你想要的。

我可以删除默认租户吗?因为主机没有租户 ID,并且我有固定数量的租户,不需要默认值。

是的。为了方便和演示,它是由模板创建的。

同时支持样板架构的最佳实践是什么..

阅读Setting Management上的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 2022-11-12
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多