Exemplo n.º 1
0
        /// <summary>
        /// Provide access to Postgre database
        /// </summary>
        /// <param name="options">Options to connect and manage database</param>
        public PostgreDbProvider(PostgreDbProviderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (string.IsNullOrEmpty(options.ConnectionString))
            {
                throw new ArgumentNullException(nameof(options.ConnectionString));
            }

            MigrationHistoryTableName = options.MigrationHistoryTableName;
            var connectionBuilder = new NpgsqlConnectionStringBuilder(options.ConnectionString);

            DbName           = connectionBuilder.Database;
            ConnectionString = connectionBuilder.ConnectionString;

            var tempConnectionBuilder =
                new NpgsqlConnectionStringBuilder(options.ConnectionString)
            {
                Database = PostgreDefaultDatabase
            };

            _connectionStringWithoutInitialCatalog = tempConnectionBuilder.ConnectionString;

            _options = options;

            _defaultVariables = new Dictionary <string, string>
            {
                [DefaultVariables.User]   = tempConnectionBuilder.Username,
                [DefaultVariables.DbName] = tempConnectionBuilder.Database
            };
        }
 public PostgreDbProviderFactory(PostgreDbProviderOptions options)
 {
     _options = options ?? throw new ArgumentNullException(nameof(options));
 }