源碼鏈接: https://pan.baidu.com/s/1xDcbQtLa8Z5kEykazSe1fQ
提取碼: 關注公眾號【GitHubCN】回復abp獲取

ABPZero - 多租戶管理
啟用多租戶
ASP.NET Boilerplate和module-zero可以運行多租戶或單租戶模式。多租戶默認為禁用。我們可以在我們的模塊PreInitialize方法啟用它,使之如下所示:
[DependsOn(typeof(AbpZeroCoreModule))]
public class MyCoreModule : AbpModule
{
public override void PreInitialize()
{
Configuration.MultiTenancy.IsEnabled = true;
}
...
}
需要注意的是:即使我們的應用程序是不是多租戶,我們必須定義一個默認的租戶(見本文件的默認租戶部分)。
當我們創建一個基於ASP.NET Boilerplate和module-zero的項目模板時,我們有一個租戶的實體和TenantManager領域服務。
租戶實體
租戶實體代表應用程序的一個租戶。
public class Tenant : AbpTenant<Tenant, User>
{
}
它源自泛型類AbpTenant。租戶實體被存儲在數據庫的AbpTenants表中。您可以添加自定義屬性到租戶類。
AbpTenant類定義一些基本的屬性,最重要的是:
TenancyName:這是一個租戶在應用程序中的唯一名稱。它通常不應該被改變。它可用於分配的子域給租戶如“mytenant.mydomain.com”。
Tenant.TenancyNameRegex常量定義命名規則。
Name:租戶的一個任意的,人性化可讀的,長名稱。
IsActive:True,這個租戶可以使用該應用程序。如果是false,這個租戶沒有用戶可以登錄到系統。
AbpTenant類是從FullAuditedEntity繼承。這意味着它具有的創建,修改和刪除審計屬性。這也是軟刪除。所以,當我們刪除租客,它不是從數據庫中刪除,只是標記為刪除。
最后,AbpTenant的Id被定義為int。
租戶管理器
租客經理器是租戶執行域邏輯的服務:
public class TenantManager : AbpTenantManager<Tenant, Role, User>
{
public TenantManager(IRepository<Tenant> tenantRepository)
: base(tenantRepository)
{
}
}
你可以在這里添加你自己的方法。你也可以覆蓋AbpTenantManager基類的任何方法針對自己的需要。
默認租戶
ASP.NET Boilerplate和module-zero假設有一個預先定義的租戶,它的TenancyName是“Default”和Id是1。在一個單租戶應用,這被用作為單租戶。在一個多租戶應用程序,你可以刪除它或使其無效。
測試運行地址:http://baidu-46032.demo.aspnetzero.com
賬號:admin 密碼:123456
需要源碼,請加QQ:858-048-581