/// <inheritdoc /> public IRepositoryProvider Create(string connectionString) { #if !NET472 if (DbProviderFactories.GetProviderInvariantNames().Any(s => string.Equals(s, ProviderInvariantName, StringComparison.Ordinal)) == false) { Trace.WriteLine($"Registering {ProviderInvariantName} factory"); DbProviderFactories.RegisterFactory(ProviderInvariantName, SqlClientFactory.Instance); } #endif var statementCompiler = new TransactSqlAdapter(this.definitionProvider); var contextFactory = new DefaultDatabaseContextFactory(connectionString, ProviderInvariantName, statementCompiler); return(new DatabaseRepositoryProvider(contextFactory)); // TODO: Support IMemoryCache and IDistributedCache }
public async Task CreateAsync_SqlClientConnection_OpensWithoutError() { #if !NET472 if (DbProviderFactories.GetProviderInvariantNames().Any(s => string.Equals(s, SqlProviderName, StringComparison.Ordinal)) == false) { Trace.WriteLine($"Registering {SqlProviderName} factory"); DbProviderFactories.RegisterFactory(SqlProviderName, SqlClientFactory.Instance); } #endif var target = new DefaultDatabaseContextFactory( ConfigurationRoot.GetConnectionString("MasterDatabase"), SqlProviderName, new TransactSqlAdapter(new DataAnnotationsDefinitionProvider())); await using (var context = await target.CreateAsync(CancellationToken.None)) { await context.OpenSharedConnectionAsync(CancellationToken.None); } }