/// <summary> /// Adds Firebird support /// </summary> /// <param name="builder">The builder to add the Firebird-specific services to</param> /// <param name="fbOptions">Firebird options</param> /// <returns>The migration runner builder</returns> public static IMigrationRunnerBuilder AddFirebird(this IMigrationRunnerBuilder builder, FirebirdOptions fbOptions) { builder.Services .AddScoped( sp => { var processorOptions = sp.GetRequiredService <IOptions <ProcessorOptions> >(); return(((FirebirdOptions)fbOptions.Clone()).ApplyProviderSwitches(processorOptions.Value.ProviderSwitches)); }) .AddScoped <FirebirdDbFactory>() .AddScoped <FirebirdProcessor>() .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <FirebirdProcessor>()) .AddScoped <FirebirdQuoter>() .AddScoped <FirebirdGenerator>() .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <FirebirdGenerator>()); return(builder); }