private static void Seed <TContext>(SeedsBase <TContext> seeds, ILogger <IApplicationBuilder> logger) where TContext : class, IDatabaseContext { logger.LogInformation("Seeding database..."); seeds.Create(); logger.LogInformation("Database seeded"); }
/// <summary> /// Performs application startup related database configuration tasks /// </summary> /// <param name="app"></param> /// <param name="serviceProvider"></param> /// <param name="migrate">Should outstanding code-first migrations be run?</param> /// <param name="seeds">Optional instance of seeds to run</param> public static void ConfigureDatabase <TContext>( this IApplicationBuilder app, IServiceProvider serviceProvider, bool migrate = true, SeedsBase <TContext> seeds = null ) where TContext : class, IDatabaseContext { var env = serviceProvider.GetService <IHostEnvironment>(); if (env.IsEnvironment(EnvironmentConstants.TESTING)) { return; } var context = serviceProvider.GetService <TContext>(); var logger = serviceProvider.GetService <ILogger <IApplicationBuilder> >(); if (migrate) { Migrate(context.Database, logger); } if (seeds != null) { Seed(seeds, logger); } }