/// <summary> /// Initializes a new instance of the <see cref="DatabaseContext"/> class. /// </summary> /// <param name="connection"> /// The IDbConnection to use. /// </param> /// <param name="repositoryAdapter"> /// The name qualifier for the database. /// </param> /// <exception cref="ArgumentNullException"> /// <paramref name="connection"/> or <paramref name="repositoryAdapter"/> is null. /// </exception> /// <remarks> /// The supplied IDbConnection will not be closed/disposed - that remains the responsibility of the caller. /// </remarks> public DatabaseContext( [NotNull] IDbConnection connection, [NotNull] IRepositoryAdapter repositoryAdapter) { this.Connection = connection ?? throw new ArgumentNullException(nameof(connection)); this.RepositoryAdapter = repositoryAdapter ?? throw new ArgumentNullException(nameof(repositoryAdapter)); this.isConnectionUserProvided = true; this.connectionString = connection.ConnectionString; this.pocoFactory = new RaisedPocoFactory(this.RepositoryAdapter.DefinitionProvider); }
/// <summary> /// Initializes a new instance of the <see cref="DatabaseContext"/> class. /// Construct a Database using a supplied connection string and a DbProviderFactory. /// </summary> /// <param name="connectionString"> /// The database connection string to use. /// </param> /// <param name="providerFactory"> /// The DbProviderFactory to use for instantiating IDbConnections. /// </param> /// <param name="repositoryAdapter"> /// The entity definition provider. /// </param> /// <exception cref="ArgumentException"> /// <paramref name="connectionString"/> is null or whitespace. /// </exception> /// <exception cref="ArgumentNullException"> /// <paramref name="providerFactory"/> or <paramref name="repositoryAdapter"/> is null. /// </exception> public DatabaseContext( [NotNull] string connectionString, [NotNull] DbProviderFactory providerFactory, [NotNull] IRepositoryAdapter repositoryAdapter) { if (string.IsNullOrWhiteSpace(connectionString)) { throw new ArgumentException(ErrorMessages.ValueCannotBeNullOrWhiteSpace, nameof(connectionString)); } this.factory = providerFactory ?? throw new ArgumentNullException(nameof(providerFactory)); this.RepositoryAdapter = repositoryAdapter ?? throw new ArgumentNullException(nameof(repositoryAdapter)); this.connectionString = connectionString; this.pocoFactory = new RaisedPocoFactory(this.RepositoryAdapter.DefinitionProvider); }