Search code examples
c#oracle-databaseentity-framework-6odac

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


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 11.2.0.3.20 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!


Solution

  • 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.