实体框架具有Identity和ASP.NET核心的核心1.1种子
问题描述:
我尝试从我的数据库播种初始数据,但这种技术的信息非常差。寻求后许多选择,我觉得我可以如何在这个岗位实体框架具有Identity和ASP.NET核心的核心1.1种子
Entity framework Core with Identity and ASP.NET Core RC2 not creating user in database
但用户说后ConfigureServices加服一样短暂,在配置调用这个服务发送的IdentityRole和IdentityUser inicial数据,该cuestion是怎么样?任何有想法?
问候
答
射手,到种子数据在ASP.NET中的核心数据库,你应该先创建一个类,你可以调用这个DbInitializer,它应该是这个样子。
public static class DbInitializer
{
public async static void InitializeAync(ApplicationDbContext context, UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
{
context.Database.EnsureCreated();
// check if any users exist.
if (context.Users.Any())
{
return; // exit method, Database has been seeded
}
string[] roleNames = {"Admin", "Member" };
IdentityResult roleResult;
// loop through roleNames Array
foreach (var roleName in roleNames)
{
var roleExist = await RoleManager.RoleExistsAsync(roleName);
//check if role exists
if (!roleExist)
{
// create new role
roleResult = await RoleManager.CreateAsync(new IdentityRole(roleName));
}
}
//create an array of users
var users = new ApplicationUser[];
{
new ApplicationUser
{
FirstName = "John",
LastName = "doe",
UserName = "johndoe",
Email = "[email protected]",
};
new ApplicationUser
{
FirstName = "James",
LastName = "doe",
UserName = "jamesdoe",
Email = "[email protected]",
};
}
//loop through users array
foreach (ApplicationUser _user in users)
{
// create user
await userManager.CreateAsync(_user, "pa$$w0rd");
//add user to "Member" role
await UserManager.AddToRoleAsync(_user, "Member");
}
}
}
接下来,你应该在启动类的配置方法调用的DbInitializer类的InitializeAsync helper方法。像这样
public async void Configure(ApplicationDbContext context, UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
{
DbInitializer.InitializeAync(context, userManager);
}
而且应该做的伎俩