title: The ADO.NET provider with invariant name 'Oracle.DataAccess.Client' Not Registered
body: <p>I have this Entity Framework based web service code developed in VS2015 that has been working fine - until my system got replaced with a new one. On a fresh new system, I am unable to compile the code in the same version of Visual Studio even though I have all the dependencies installed - including the Oracle 11.2 Client Runtime (which says it, "installs tools for developing applications, networking services and basic client software").</p>
  
  <p>When I build the solution in VS2015, the error thrown is: <code>Error 175: The ADO.NET provider with invariant name 'Oracle.DataAccess.Client' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details.</code></p>
  
  <p>Double-clicking the error takes me to the EDMX File pointing to and the EDMX file tag StorageModels > Schema:</p>
  
  <p><code>&lt;Schema Namespace="Model.Store" Alias="Self" Provider="Oracle.DataAccess.Client" ProviderManifestToken="11.2" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl"&gt;</code></p>
  
  <p>Interestingly, the DLL file gets created (ins spite of the above error) but when I replace the existing DLL on the server with this new one it seems to have issues extracting data from the database with something like:</p>
  
  <pre><code>System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. ---&gt; System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
     at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
     at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
     --- End of inner exception stack trace ---
     at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
     at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
     at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
     at System.Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection)
     at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config)
     at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
     at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()
     at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
     at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
     at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
     at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
     at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
     at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
     at MyCo.MyDept.MyIntegration.MyService.DataAccess.DAL.GetLocation() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\DataAccess\DAL.cs:line 17
     at MyCo.MyDept.MyIntegration.MyService.Utility.Helpers.GetLocations() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\Utility\Helpers.cs:line 303
     at MyCo.MyDept.MyIntegration.MyService.KService.GetLocations() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\KService.svc.cs:line 71
  </code></pre>
  
  <p>I have tried the solutions provided in other similar threads but none of them seem to work. Any help is appreciated. Thanks.</p>