EntityFramework 6 with Oracle: Is there a "standalone" ODAC (i.e. without ODBC), and does every client PC need to have it installed?

c# entity-framework-6 odac oracle


While my VS 2013 Update 4 installation is running I decided to ask some questions that are bothering me and which are potentially easy to answer as I couldn't test myself yet (due to having had an older VS version up until now). Also, I don't have much experience with Oracle DB's at all, I just had to use an existing one and it worked so far because someone else did all the necessary work for it to run years ago.

I have to use EntityFramework 6 together with this existing Oracle DB. I know I need an ODAC for that to work, and supposedly it has to be the newest one (12.x). What I did so far to test if EF works at all with my Oracle DB (11g):

  • Install ODAC from NuGet
  • Intall EF 5 from NuGet

Then everything worked fine after some complications with updatable views.

Now to get EF 6 running with Oracle, I first need to have the newer ODAC version. Is it necessary to install the package from here, which contains a full-blown ODBC? There already is an older version of this on the PC. Is there a "standalone" installation of the ODAC available, or do I have to uninstall/reinstall the whole package on my development PC?

What I also don't know: Does every client who uses the software later need this installation, or is it possible to just ship the DLL's? As far as I know, the clients already each have an ODBC installation on their systems, and also each have a specific DB user assigned through which they read and manipulate data in the DB, if that is important to know.

Thanks in advance!

1/13/2015 7:17:54 AM

Accepted Answer

You can use the Managed Driver ODP.NET (Oracle Data Provider for .NET), you can download it from here: Oracle Data Access Components (ODAC) Downloads.

It is just a single DLL (Oracle.ManagedDataAccess.dll) you have to distribute. It works for both x86 and x64.

1/13/2015 7:56:34 AM

Popular Answer

For the long time I had been using unmanaged ODP.NET and even then it was possible to use it in a fully standalone mode(although you had to drag huge DLLs with your application). This approach described here, just in case.

Now things are much easier with managed ODP.NET. I would only add(to Wernfried's answer) that if you use NuGet your could install managed version from here. But keep in mind that distributed transactions are not supported in this package.

Related Questions


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow