Search code examples
oracleentity-frameworkentity-framework-6odp.net

How to use Oracle Entity Framework with no config file


Is it possible to create a code-first Entity Framework model that connects to an existing database using ODP.Net without having any settings in the app.config file?

I have tried many different things.

Currently I am setting DbConfiguration:

    sealed class EntityFrameworkConfiguration : DbConfiguration
    {
        public static readonly DbConfiguration Instance = new EntityFrameworkConfiguration();

        EntityFrameworkConfiguration()
        {
            this.SetDefaultConnectionFactory(new OracleConnectionFactory());
            this.SetProviderServices("Oracle.ManagedDataAccess.Client", EFOracleProviderServices.Instance);
        }
    }

    DbConfiguration.SetConfiguration(EntityFrameworkConfiguration.Instance);

I am passing an OracleConnection directly into the EF context.

However, I either have problems with the SQL being generated in SQL Server format (using double-quotes around table aliases), or I get the following error:

An unhandled exception of type 'System.NotSupportedException' occurred in EntityFramework.dll

Additional information: Unable to determine the provider name for provider factory of type 'Oracle.ManagedDataAccess.Client.OracleClientFactory'. Make sure that the ADO.NET provider is installed or registered in the application config.

Has anyone any experience of getting this to work without polluting app.config with crud?


Solution

  • Uff. Found the problem.

    Because I was registering column mapping using lower case the query didn't work. The column and table names must be in upper-case.

    How silly.