ABP和Module-Zero可以運作多租戶或單租戶模式。多租戶預設是禁用的。我們可以在module類中的PreInitialize方法中開啟它,如下所示:
要注意的是:即使我們的應用不是多租戶,我們也必須定義一個預設的租戶。
當我們基于ABP和Module-Zero建立了一個項目模闆之後,我們就得到了Tenant實體和TenantManager領域服務。
Tenant實體代表該應用的一個租戶。
Tenant實體派生自泛型的AbpTenant類。Tenant實體存儲在資料庫中的AbpTenants表中。你可以将自定義的屬性添加到Tenant類中。
AbpTenant類定義了一些基本的屬性,最重要的有這麼幾個:
TenancyName:這是一個租戶在應用中唯一的名字。正常情況下,不應該改變。可以使用它來配置設定一些租戶的子領域,如‘mytenant.mydomain.com’。TenancyNameRegex常量定義了該命名規則。
Name:該租戶的一個随意的,人類可讀的長名字。
IsActive:如果該租戶可以使用該應用,此值為true。如果此值為false,那麼禁止該租戶的使用者登入系統。
AbpTenant類繼承自FullAuditedEntity。這意味着它有建立,修改以及删除審計屬性。同時,它還是軟删除的,即當我們删除一個租戶時,它并沒有從資料庫中删除,而是僅僅标記為已删除的狀态。
最後,AbpTenant的Id定義為Int類型。
租戶管理者是執行租戶領域邏輯的服務:
租戶管理者也用于管理租戶特征。你可以在這裡添加你自己的方法。你也可以重寫AbpTenantManager基類中的任何方法類滿足自己的需求。
ABP和Module-Zero假設存在一個預定義的租戶,它的租戶名是“Default”,且Id是1。在一個單租戶的應用中,它被用作單獨的租戶。在一個多租戶的應用中,你可以删除它或者标記為無效的,即IsActive字段置為false。
本文轉自tkbSimplest部落格園部落格,原文連結:http://www.cnblogs.com/farb/p/TenantManagement.html,如需轉載請自行聯系原作者