public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using var scope = host.Services.CreateScope(); var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { var context = services.GetRequiredService <ApplicationDbContext>(); if (context.Database.GetPendingMigrations().Count() > 0) { context.Database.Migrate();//installs pending migrations. } await ApplicationContextSeed.SeedAsync(context, loggerFactory); } catch (Exception ex) { var logger = loggerFactory.CreateLogger <Program>();//Program is the class we want to associate the error with. logger.LogError(ex, "An error occured during migration"); } host.Run(); }
public static async Task Main(string[] args) { var host = CreateHostBuilder(args) .Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { // При первом запуске заполняем бд данными var catalogContext = services.GetRequiredService <ApplicationContext>(); await ApplicationContextSeed.SeedAsync(catalogContext, loggerFactory); } catch (Exception ex) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(ex, "An error occurred seeding the DB."); return; } } host.Run(); }
public static void Seed(this IApplicationBuilder applicationBuilder) { using (var serviceScope = applicationBuilder .ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope()) { var context = serviceScope.ServiceProvider.GetService <ApplicationDbContext>(); ApplicationContextSeed.SeedAsync(context).GetAwaiter().GetResult(); } }
public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { // context db seed var services = scope.ServiceProvider; await ApplicationContextSeed.SeedAsync(services); } await host.RunAsync(); }
protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.UseEnvironment("Testing"); builder.ConfigureServices(services => { services.AddEntityFrameworkInMemoryDatabase(); var provider = services .AddEntityFrameworkInMemoryDatabase() .BuildServiceProvider(); services.AddDbContext <ApplicationContext>(options => { options.UseInMemoryDatabase("DBForTesting"); options.UseInternalServiceProvider(provider); }); services.AddIdentity <ApplicationUser, IdentityRole>() .AddEntityFrameworkStores <ApplicationContext>(); var sp = services.BuildServiceProvider(); using (var scope = sp.CreateScope()) { var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <ApplicationContext>(); db.Database.EnsureCreated(); try { var userManager = scopedServices.GetRequiredService <UserManager <ApplicationUser> >(); var roleManager = scopedServices.GetRequiredService <RoleManager <IdentityRole> >(); IdentityContextSeed.SeedAsync(userManager, roleManager).Wait(); ApplicationContextSeed.SeedAsync(db, userManager, "/img/example_image.jpg").Wait(); } catch (Exception ex) { Debug.WriteLine(ex.Message); } } }); }