ABP AbpMultiTenancyModule
ABP AbpMultiTenancyModule
2023/6/1
➡️

AbpMultiTenancyModule

ABP vNext 原生支持多租户体系,可以让开发人员快速地基于框架开发 SaaS 系统。 ABP vNext 实现 多租户的思路也非常简单,通过一个 TenantId 来分割各个租户的数据,并且在查询的时候使用统一的 全局过滤器(类似于软删除)来筛选数据。

namespace Volo.Abp.MultiTenancy;

[DependsOn(
    typeof(AbpDataModule),
    typeof(AbpSecurityModule),
    typeof(AbpSettingsModule),
    typeof(AbpEventBusAbstractionsModule),
    typeof(AbpMultiTenancyAbstractionsModule)
    )]
public class AbpMultiTenancyModule : AbpModule
{
    public override void ConfigureServices(
      ServiceConfigurationContext context)
    {
        context.Services.AddSingleton<ICurrentTenantAccessor>(
          AsyncLocalCurrentTenantAccessor.Instance);

        var configuration = context.Services.GetConfiguration();
        Configure<AbpDefaultTenantStoreOptions>(configuration);

        Configure<AbpSettingOptions>(options =>
        {
            options.ValueProviders.InsertAfter(t => t == typeof(
              GlobalSettingValueProvider), typeof(TenantSettingValueProvider));
        });

        Configure<AbpTenantResolveOptions>(options =>
        {
            options.TenantResolvers.Insert(0, new
            CurrentUserTenantResolveContributor());
        });
    }
}
👍🎉🎊