private static void IntializeStoreOptions(SIOEntityFrameworkCoreSqlServerOptions builder, EntityFrameworkCoreStoreOptions options) { foreach (var storeOption in builder.StoreOptions) { options.WithContext(storeOption.StoreType, o => o.UseSqlServer(storeOption.ConnectionString, storeOption.StoreOptions)); } }
public static ISIOInfrastructureBuilder AddEntityFrameworkCoreSqlServer(this ISIOInfrastructureBuilder source, Action <SIOEntityFrameworkCoreSqlServerOptions> builderAction) { if (source == null) { throw new ArgumentNullException(nameof(source)); } source.AddEntityFrameworkCore(); var sqlBuilder = new SIOEntityFrameworkCoreSqlServerOptions(); builderAction(sqlBuilder); source.AddEntityFrameworkCoreStore(o => IntializeStoreOptions(sqlBuilder, o)); if (!string.IsNullOrWhiteSpace(sqlBuilder.ProjectionConnectionString)) { source.Services.AddDbContext <SIOProjectionDbContext>(options => { options.UseSqlServer(sqlBuilder.ProjectionConnectionString, sqlBuilder.ProjectionOptions); }); } return(source); }