DataSeeder
生活随笔
收集整理的這篇文章主要介紹了
DataSeeder
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先是實(shí)現(xiàn)IDataSeedContributor接口,此類型會自動加到AbpDataOptions的Contributors的列表
public interface IDataSeedContributor
{
Task SeedAsync(DataSeedContext context);
}
IDataSeeder利用Contributors,逐個取出實(shí)例化進(jìn)行執(zhí)行,其中DataSeedContext是TenantId和自定義的Dictionary<string, object> Properties
擴(kuò)展一個SeedAsync方法tenantId,如果在多租戶的環(huán)境,注意要帶上
public static Task SeedAsync(this IDataSeeder seeder, Guid? tenantId = null)
{
return seeder.SeedAsync(new DataSeedContext(tenantId));
}
ABP應(yīng)用框架增加了兩個方法,分別是用戶和角色,以及權(quán)限
Volo.Abp.PermissionManagement
IPermissionDataSeeder
public virtual Task SeedAsync(DataSeedContext context)
{
var multiTenancySide = CurrentTenant.GetMultiTenancySide();
var permissionNames = PermissionDefinitionManager
.GetPermissions()
.Where(p => p.MultiTenancySide.HasFlag(multiTenancySide))
.Select(p => p.Name)
.ToArray();
return PermissionDataSeeder.SeedAsync(
RolePermissionValueProvider.ProviderName,
"admin",
permissionNames,
context.TenantId
);
}
2、IIdentityDataSeeder
Volo.Abp.Identity
public Task SeedAsync(DataSeedContext context)
{
return _identityDataSeeder.SeedAsync(
context["AdminEmail"] as string ?? "admin@abp.io",
context["AdminPassword"] as string ?? "1q2w3E*",
context.TenantId
);
}
總結(jié)
以上是生活随笔為你收集整理的DataSeeder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webMagic学习系列:downloa
- 下一篇: 解决keras.backend.resh