It shouldn't matter whether you are using VS 2015 or 2017. The EF6 app runs in .NET FW, not the IDE.
One thing I noticed is that your LDAP_ADMIN is pointing to your 12.1 Home/Network/Admin directory, not the 18.3 Home. That tells me you may have leftover places of other Oracle configuration files on the machine. It's possible you have a stray ldap.ora somewhere that overrides the .NET configuration file settings.
You could then try putting our ldap.ora in the same location as where you've placed your tnsnames.ora and sqlnet.ora.
I realized I should use the LDAPSettings instead of getting it from a particular location as this will be deployed to a server that may or may not have ldap set up.
Ideally, I would like to have the application independent of what is on the server or my computer (why I'm using managed client) as otherwise I run into driver issues. This also means I don't have to be bothered with what is or is not on the server.
All of the ldap settings are the same, but shouldn't setting them specifically using ldapsetting in app.config override them? How should my config look to keep it independent?
<LDAPsetting name="DIRECTORY_SERVERS" value="(ldapserver1.fqdn.com,ldapserver2.fqdn.com)"/>
<LDAPsetting name="DIRECTORY_SERVER_TYPE" value="oid"/>
<LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="dc=fqdn,dc=com"/>
The big problem I have is how to setup a new entity framework model with an ldap database as the entity data model wizard/new connection properties are not aware of ldap.
I attempted to just use datasets to see if it was a problem with LDAP vs entity framework. I was able to setup a connection to the database through LDAP fine when using data adapters and data sets. It's just the entity framework setup does not seem to allow for it in a straightforward manner.
I made sure that it was using the configuration in app.config by temporarily disabling LDAP on any local Oracle clients.
If I am using an existing database, how do I get Entity Framework to connect through LDAP? Building the connection string from the one I created for the data adapter just gives me connection timed out.
As EF relies on the DbProviderFactory class, perhaps the factory class does not use provider-specific configuration in the .NET config file. Can you try setting your directory settings in ldap.ora instead?
The 12.1 LDAP configuration from the original post that I was pointing to matches the provider specific settings.
As far as if the factory class uses the provider specific configuration in the .net config file, is there a way we can find out?
Does this mean I should discuss with the server administrator to get the LDAP configuration working on the server?
I was hoping to avoid that as that is an additional level of complexity.
You can try connecting to Oracle DB through a non-EF app using the factory classes. If that doesn't work, then it's likely a factory class limitation not being able to use provider-specific config settings.
When you set the LDAP settings, do so without using the any of the app.config settings. That means you can't use:
<setting name="LDAP_ADMIN" value="C:\app\client\windowsuser\product\12.1.0\client_1\NETWORK\ADMIN"/>
You can place your *.ora files in your current working directory, where there's a Windows environment variable for TNS_ADMIN set (or LDAP_ADMIN if it's just ldap.ora).