Я использую EF Core для создания AppDBContext
и AppDbContextSeed
:
AppDbContextSeed
public class AppDbContextSeed
{
private readonly AppDbContext _dbContext;
private UserManager<AppUser> _userManager;
private RoleManager<AppRole> _roleManager;
public AppDbContextSeed(AppDbContext dbContext, UserManager<AppUser> userManager,
RoleManager<AppRole> roleManager)
{
_dbContext = dbContext;
}
public async Task Seed()
{
...
await _dbContext.SaveChangesAsync();
}
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<AppDbContextSeed>();
}
Program.cs
public static void Main(string[] args)
{
var host = BuildWebHost(args);
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var appDbContextSeed = services.GetService<AppDbContextSeed>();
appDbContextSeed.Seed().Wait();
}
catch (Exception ex)
{
var logger = services.GetService<ILogger<Program>>();
logger.LogError(ex, "An error occurred while seeding the database");
}
}
host.Run();
}
Когда я запускаю add-migration
и update-database
, данные из appDbContextSeed
не вставляются в базу данных. Что я сделал не так?