アーチャーは、あなたが最初のクラスを作成する必要があります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ヘルパーメソッドを呼び出す必要があります。以下のようなので、
public async void Configure(ApplicationDbContext context, UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
{
DbInitializer.InitializeAync(context, userManager);
}
とは、それはトリックを行う必要があります