Esempio n. 1
0
        public DbConnection Create(out DbConOptions options, string optionName = null)
        {
            options = null;
            if (string.IsNullOrEmpty(optionName) || optionName == _options?.OptionName)
            {
                options = _options;
            }
            else if (_multipleOptions != null && _multipleOptions.Any(x => x.OptionName == optionName))
            {
                options = _multipleOptions.FirstOrDefault(x => x.OptionName == optionName);
            }
            if (options == null)
            {
                throw new DbConnectionUnitOfWorkException("Options is null");
            }
            if (string.IsNullOrEmpty(options.DbProviderName))
            {
                throw new DbConnectionUnitOfWorkException("DbProviderName must be specify an value");
            }
            var factory = DbProviderFactories.GetFactory(options.DbProviderName);

            if (null == factory)
            {
                throw new DbConnectionUnitOfWorkException($"DbProvider: {options.DbProviderName} not register in DbProviderFactories");
            }
            var cnn = factory.CreateConnection();

            cnn.ConnectionString = options.ConnectionString;
            return(cnn);
        }
Esempio n. 2
0
 public DbFactory(MultipleDbConOptions multipleOptions)
 {
     _multipleOptions = multipleOptions;
     _options         = _multipleOptions.FirstOrDefault(x => x.IsDefaultOption);
 }