DataSeeder
生活随笔
收集整理的這篇文章主要介紹了
DataSeeder
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先是實(shí)現(xiàn)IDataSeedContributor接口,此類(lèi)型會(huì)自動(dòng)加到AbpDataOptions的Contributors的列表
public interface IDataSeedContributor
{
Task SeedAsync(DataSeedContext context);
}
IDataSeeder利用Contributors,逐個(gè)取出實(shí)例化進(jìn)行執(zhí)行,其中DataSeedContext是TenantId和自定義的Dictionary<string, object> Properties
擴(kuò)展一個(gè)SeedAsync方法tenantId,如果在多租戶(hù)的環(huán)境,注意要帶上
public static Task SeedAsync(this IDataSeeder seeder, Guid? tenantId = null)
{
return seeder.SeedAsync(new DataSeedContext(tenantId));
}
ABP應(yīng)用框架增加了兩個(gè)方法,分別是用戶(hù)和角色,以及權(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的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: webMagic学习系列:downloa
- 下一篇: 解决keras.backend.resh