我想有一个示例代码,介绍如何设置一个允许EF通过LDAP连接从Oracle DB映射实体的配置文件。我读过的大多数文档都同意<LDAPSetting>
标记,但对<connectionStrings>
和/或<entityFramework>
标记一无所知。到目前为止,这就是我所拥有的。
<oracle.manageddataaccess.client>
<version number="*">
<LDAPsettings>
<LDAPsetting name="DIRECTORY_SERVERS" value="(serverX:3060:3131,serverY:3060:3131,serverZ:3060:3131,serverQ:3060:3131)"/>
<LDAPsetting name="DIRECTORY_SERVER_TYPE" value="oid"/>
<LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="cn=OracleContext,dc=mydomain,dc=com"/>
</LDAPsettings>
<settings>
<setting name="NAMES.DIRECTORY_PATH" value="(LDAP)"/>
</settings>
</version>
</oracle.manageddataaccess.client>
任何样本都会有很大的帮助。
答案 0 :(得分:1)
检查你的语法,它应该是这样的:
<oracle.manageddataaccess.client>
<version number="*">
<LDAPsettings>
<setting name="DIRECTORY_SERVERS" value="(serverX:3060:3131,serverY:3060:3131,serverZ:3060:3131,serverQ:3060:3131)"/>
<setting name="DIRECTORY_SERVER_TYPE" value="oid"/>
<setting name="DEFAULT_ADMIN_CONTEXT" value="cn=OracleContext,dc=mydomain,dc=com"/>
</LDAPsettings>
<settings>
<setting name="NAMES.DIRECTORY_PATH" value="(LDAP)"/>
</settings>
</version>
</oracle.manageddataaccess.client>
有关详细信息,请参阅Configuring Oracle Data Provider for .NET。
关于LDAP和ODP.NET托管提供商还检查此问题:ODP.NET Managed library does resolve alias, but 32-bit library does
答案 1 :(得分:0)
阅读完一些文档后,我发现有两种设置LDAP的方法。因此,这不是&#34;应该&#34;但是&#34;其中&#34;适合你。正如@Wernfried建议我使用了<setting>
标签并根据此reference它很好。但是,出于某种原因,我不知道它对我不起作用。相反,我保留了 LDAPSettings部分 here中指向的初始<LDAPsetting>
标记,但它确实有效。
至于<connectionStrings>
,它就像下面这样简单:
<connectionStrings>
<add name="Source" connectionString= "Data Source=ServiceName;password=your_password;User ID=your_user" providerName="Oracle.ManagedDataAccess.Client" />
</connectionStrings>
对于Entity Framework,我保留了NuGet包安装程序配置的默认设置。在我的项目中,我安装了官方Oracle ODP.NET,托管驱动程序和官方Oracle ODP.NET,托管实体框架驱动程序 NuGet软件包。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v12.0"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client"
type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</providers>
</entityFramework>