title: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception on a Sub Website
body: <p>I have 2 websites, one is a sub directory of another but is an Application
  ex: /root &amp; /root/Services</p>
  
  <p>They both use Entity Framework 6.x but the child website is throwing <strong>The type initializer for System.Data.Entity.Internal.AppConfig' threw an exception</strong> because it appears to be seeing to many entries for the same EF Database Provider because of the nested web.config</p>
  
  <p>Is there a way to clear the providers collection so that I do not get this error? I've tried putting in  which had no effect.</p>
  
  <p>If I comment out providers section it works</p>
  
  <pre><code>&lt;providers&gt;
    &lt;provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /&gt;
  &lt;/providers&gt;
  &lt;/entityFramework&gt;
  </code></pre>
  
  <p>But I don't want to do this because not every environment is going to have nested websites. and NuGet tends puts it back in.
  Can I adjust this programmatically?</p>
  
  <p>Here's the full exception and stack trace</p>
  
  <pre><code>System.TypeInitializationException was unhandled by user code
  HResult=-2146233036
  Message=**The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception.**
  Source=EntityFramework
  TypeName=System.Data.Entity.Internal.AppConfig
  StackTrace:
       at System.Data.Entity.Internal.AppConfig.get_DefaultInstance()
       at System.Data.Entity.Internal.LazyInternalConnection..ctor(String nameOrConnectionString)
       at System.Data.Entity.DbContext..ctor(String nameOrConnectionString)
       at co.Repository.Data.coContext..ctor() in coModel.Context.Generated.cs:line 23
       at co.Repository.RepositoryBase`1.SingleOrDefault(Expression`1 predicate) in co.Repository\RepositoryBase.cs:line 13
       at UserFactory.GetOneByUserName(String siteCode, String userName) in UserFactory.cs:line 151
       at UserService.GetOneByUserName(String siteCode, String userName) in UserService.cs:line 59
       at SyncInvokeGetOneByUserName(Object , Object[] , Object[] )
       at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)
       at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)
  InnerException: System.Configuration.ConfigurationErrorsException
       HResult=-2146232062
       Message=An error occurred creating the configuration section handler for entityFramework: **The provider for invariant name 'System.Data.SqlClient' is specified multiple times in the application configuration. The invariant name must be unique for each configured provider.** (web.config line 339)
       Source=System.Configuration
       BareMessage=An error occurred creating the configuration section handler for entityFramework: The provider for invariant name 'System.Data.SqlClient' is specified multiple times in the application configuration. The invariant name must be unique for each configured provider.
       Filename=web.config
       Line=339
       StackTrace:
            at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
            at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object&amp; result, Object&amp; resultRuntimeObject)
            at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&amp; result, Object&amp; resultRuntimeObject)
            at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
            at System.Configuration.ConfigurationManager.GetSection(String sectionName)
            at System.Data.Entity.Internal.AppConfig..ctor()
            at System.Data.Entity.Internal.AppConfig..cctor()
       InnerException: System.InvalidOperationException
            HResult=-2146233079
            Message=The provider for invariant name 'System.Data.SqlClient' is specified multiple times in the application configuration. The invariant name must be unique for each configured provider.
            Source=EntityFramework
            StackTrace:
                 at System.Data.Entity.Internal.ConfigFile.ProviderCollection.BaseAdd(ConfigurationElement element)
                 at System.Configuration.ConfigurationElementCollection.OnDeserializeUnrecognizedElement(String elementName, XmlReader reader)
                 at System.Configuration.ConfigurationElement.DeserializeElement(XmlReader reader, Boolean serializeCollectionKey)
                 at System.Configuration.ConfigurationElement.DeserializeElement(XmlReader reader, Boolean serializeCollectionKey)
                 at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionImpl(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
                 at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
                 at System.Configuration.RuntimeConfigurationRecord.CreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
                 at System.Configuration.BaseConfigurationRecord.CallCreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader, String filename, Int32 line)
            InnerException: 
  </code></pre>