Beispiel #1
0
 internal AppConfig(
     ConnectionStringSettingsCollection connectionStrings,
     KeyValueConfigurationCollection appSettings,
     EntityFrameworkSection entityFrameworkSettings,
     ProviderServicesFactory providerServicesFactory = null)
 {
     this._connectionStrings       = connectionStrings;
     this._appSettings             = appSettings ?? new KeyValueConfigurationCollection();
     this._entityFrameworkSettings = entityFrameworkSettings ?? new EntityFrameworkSection();
     this._providerServicesFactory = providerServicesFactory ?? new ProviderServicesFactory();
     this._providerServices        = new Lazy <IList <NamedDbProviderService> >((Func <IList <NamedDbProviderService> >)(() => (IList <NamedDbProviderService>) this._entityFrameworkSettings.Providers.OfType <ProviderElement>().Select <ProviderElement, NamedDbProviderService>((Func <ProviderElement, NamedDbProviderService>)(e => new NamedDbProviderService(e.InvariantName, this._providerServicesFactory.GetInstance(e.ProviderTypeName, e.InvariantName)))).ToList <NamedDbProviderService>()));
     if (this._entityFrameworkSettings.DefaultConnectionFactory.ElementInformation.IsPresent)
     {
         this._defaultConnectionFactory = new Lazy <IDbConnectionFactory>((Func <IDbConnectionFactory>)(() =>
         {
             DefaultConnectionFactoryElement connectionFactory = this._entityFrameworkSettings.DefaultConnectionFactory;
             try
             {
                 return((IDbConnectionFactory)Activator.CreateInstance(connectionFactory.GetFactoryType(), connectionFactory.Parameters.GetTypedParameterValues()));
             }
             catch (Exception ex)
             {
                 throw new InvalidOperationException(Strings.SetConnectionFactoryFromConfigFailed((object)connectionFactory.FactoryTypeName), ex);
             }
         }), true);
     }
     else
     {
         this._defaultConnectionFactory = this._defaultDefaultConnectionFactory;
     }
 }
Beispiel #2
0
        internal AppConfig(
            ConnectionStringSettingsCollection connectionStrings,
            KeyValueConfigurationCollection appSettings,
            EntityFrameworkSection entityFrameworkSettings,
            ProviderServicesFactory providerServicesFactory = null)
        {
            DebugCheck.NotNull(connectionStrings);

            _connectionStrings       = connectionStrings;
            _appSettings             = appSettings ?? new KeyValueConfigurationCollection();
            _entityFrameworkSettings = entityFrameworkSettings ?? new EntityFrameworkSection();
            _providerServicesFactory = providerServicesFactory ?? new ProviderServicesFactory();

            _providerServices = new Lazy <IList <NamedDbProviderService> >(
                () => _entityFrameworkSettings
                .Providers
                .OfType <ProviderElement>()
                .Select(
                    e => new NamedDbProviderService(
                        e.InvariantName,
                        _providerServicesFactory.GetInstance(e.ProviderTypeName, e.InvariantName)))
                .ToList());

            if (_entityFrameworkSettings.DefaultConnectionFactory.ElementInformation.IsPresent)
            {
                _defaultConnectionFactory = new Lazy <IDbConnectionFactory>(
                    () =>
                {
                    var setting = _entityFrameworkSettings.DefaultConnectionFactory;

                    try
                    {
                        var type = setting.GetFactoryType();
                        var args = setting.Parameters.GetTypedParameterValues();
                        return((IDbConnectionFactory)Activator.CreateInstance(type, args));
                    }
                    catch (Exception ex)
                    {
                        throw new InvalidOperationException(
                            Strings.SetConnectionFactoryFromConfigFailed(setting.FactoryTypeName), ex);
                    }
                }, isThreadSafe: true);
            }
            else
            {
                _defaultConnectionFactory = _defaultDefaultConnectionFactory;
            }
        }