Here's the scenario I'm facing:
1. I have several projects using EF and the Oracle 11 R2 client. These can't change versions right now due to the servers they're on.
2. I want to use EF and the Managed Provider from Oracle 12 for a new project. This project runs on multiple client versions on many client machines (including older 11g clients that don't support EF), so the managed provider is ideal.
Is this possible? If I install both clients at the same time, can I tell the dev tools from 12 that I want them to use the 11 client for certain projects and have things still work?
I decided to give this a try myself, and it's been nothing but a nightmare. What I did was this:
1. Remove Oracle everything from my system.
2. Install the "fat" Oracle client 220.127.116.11 (the one we use for normal applications).
3. Install ODAC with ODT 12.
I can get the managed client to work in that case, and the developer tools work. But it has a bunch of side effects, one of which is that it breaks OS Authentication in SQL Developer (see this: Internal Error: Fetch Error Message Failed ). The only way to fix that is to reverse the PATH value so that oracle 11 is found before 12. That fixes SQL Developer, and breaks the developer tools in Visual Studio.
So I guess the conclusion here is that if you're using Entity Framework, don't think about using the managed provider unless you can get absolutely everything onto Oracle 12 client. It doesn't play nice.
I'm kind of confused because SQL Developer is java based and doesn't use Oracle Homes. I also didn't think it even used the Windows Oracle Client stack (instead using thin JDBC - all Java). I could be wrong, but I thought they really should not interact.
As far as the other question: As long as you remove the ODP.NET policy DLL, multiple versions of ODP.NET are designed to play nice together. But only one version of ODT can be on a system at the same time, a fact of life with VS ad-ins.
For EF codegen (or any other type of code gen), you may run into issues if you use 12.1 ODT to generate code designed for 12.1 ODP.NET, but then switch out 11.2 ODP.NET. Your miles may vary on that one.
Let me know if you have made progress and I will see what I can do. If there is a problem, we'd like to fix it.
Hi. The java driver in SQL Developer doesn't support OS authentication. If you want to use that, you have to enable the OCI/Thick driver option, and that's where things go wrong.
In the end we also ran into a problem with the managed provider not working with OS authentication on our domain (which seems to be a thing according to the readme), so we ended up just going back to the 11R2 provider. There was just too many issues for us to make it worth using at the moment.