用一些数据(用户、发票等)填充数据库
Filling database with some data (Users, Invoices, etc...)
我想用一些数据填充我的数据库,让前端开发人员开始使用我的 API。我不希望这些数据在生产中上线,所以我觉得它不属于 "Seeded data" 的类别。对我来说,种子数据是进入生产环境的数据,需要在我的应用程序启动之前存储在数据库中。例如,国家列表等
就我而言,我想添加一些用户、一些链接到用户的发票、一些产品等。如果在我们处于开发阶段时进行部署时这样做就更好了。
如有任何建议,我们将不胜感激。
启动时class您需要根据环境进行检查(是否处于开发阶段)并调用适当的种子方法。
检查的命令是。
if (Environment.IsDevelopment())
对于这个任务,我将创建一个单独的项目来完成它,我只会在其中播种数据。这完全取决于您的架构。
如果环境设置为 "Development",我将创建 DataInitializer class 来播种所有需要的数据。
例如创建用户:
public static class IdentityDataInitializer
{
private static void SeedUsers(UserManager<ApplicationUser> userManager)
{
if (userManager.FindByNameAsync("Admin").Result == null)
{
ApplicationUser admin = new ApplicationUser()
{
UserName = "Admin",
Email = "Admin@admin.com",
RegistrationDate = DateTime.Now
};
string password = "Admin1";
var result = userManager.CreateAsync(admin, password);
if (result.Result.Succeeded)
{
userManager.AddToRoleAsync(admin, "Admin").Wait();
}
}
}
}
所有方法准备就绪后,只需将其添加到您的 Startup.cs:
public void Configure(
IApplicationBuilder app,
IWebHostEnvironment env,
UserManager<ApplicationUser> userManager,
RoleManager<IdentityRole> roleManager)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
IdentityDataInitializer.SeedDefaultData(userManager, roleManager);
}
//Some methods...
}
}
我想用一些数据填充我的数据库,让前端开发人员开始使用我的 API。我不希望这些数据在生产中上线,所以我觉得它不属于 "Seeded data" 的类别。对我来说,种子数据是进入生产环境的数据,需要在我的应用程序启动之前存储在数据库中。例如,国家列表等
就我而言,我想添加一些用户、一些链接到用户的发票、一些产品等。如果在我们处于开发阶段时进行部署时这样做就更好了。
如有任何建议,我们将不胜感激。
启动时class您需要根据环境进行检查(是否处于开发阶段)并调用适当的种子方法。
检查的命令是。
if (Environment.IsDevelopment())
对于这个任务,我将创建一个单独的项目来完成它,我只会在其中播种数据。这完全取决于您的架构。
如果环境设置为 "Development",我将创建 DataInitializer class 来播种所有需要的数据。
例如创建用户:
public static class IdentityDataInitializer
{
private static void SeedUsers(UserManager<ApplicationUser> userManager)
{
if (userManager.FindByNameAsync("Admin").Result == null)
{
ApplicationUser admin = new ApplicationUser()
{
UserName = "Admin",
Email = "Admin@admin.com",
RegistrationDate = DateTime.Now
};
string password = "Admin1";
var result = userManager.CreateAsync(admin, password);
if (result.Result.Succeeded)
{
userManager.AddToRoleAsync(admin, "Admin").Wait();
}
}
}
}
所有方法准备就绪后,只需将其添加到您的 Startup.cs:
public void Configure(
IApplicationBuilder app,
IWebHostEnvironment env,
UserManager<ApplicationUser> userManager,
RoleManager<IdentityRole> roleManager)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
IdentityDataInitializer.SeedDefaultData(userManager, roleManager);
}
//Some methods...
}
}