public static IServiceCollection AddJokerNpDbContext <TContext>(this IServiceCollection services, Action <JokerDbContextOptionBuilder> optionBuilder) where TContext : DbContext { JokerDbContextOptionBuilder contextOptionBuilder = new JokerDbContextOptionBuilder(); optionBuilder.Invoke(contextOptionBuilder); if (string.IsNullOrEmpty(contextOptionBuilder.ConnectionString)) { throw new ArgumentNullException("Connectionstring can not be null", nameof(contextOptionBuilder.ConnectionString)); } string assemblyName = typeof(TContext).Namespace; services.AddDbContext <TContext>(options => { options.UseNpgsql(contextOptionBuilder.ConnectionString, sqlOptions => { if (contextOptionBuilder.EnableMigration) { sqlOptions.MigrationsAssembly(assemblyName); } }); }); return(services); }
public static IServiceCollection AddJokerDbContext <TContext>(this IServiceCollection services, Action <JokerDbContextOptionBuilder> optionBuilder) where TContext : DbContext { JokerDbContextOptionBuilder contextOptionBuilder = new JokerDbContextOptionBuilder(); optionBuilder.Invoke(contextOptionBuilder); if (string.IsNullOrEmpty(contextOptionBuilder.ConnectionString)) { throw new ArgumentNullException("Connectionstring can not be null", nameof(contextOptionBuilder.ConnectionString)); } string assemblyName = typeof(TContext).Namespace; services.AddDbContext <TContext>(options => { options.UseSqlServer(contextOptionBuilder.ConnectionString, sqlOptions => { if (contextOptionBuilder.EnableMigration) { sqlOptions.MigrationsAssembly(assemblyName); sqlOptions.EnableRetryOnFailure(maxRetryCount: contextOptionBuilder.MaxRetryCount, maxRetryDelay: contextOptionBuilder.MaxRetryDelay ?? TimeSpan.FromSeconds(30), errorNumbersToAdd: null); } }); }); return(services); }