【问题标题】:How to configure Entity Framework with LDAP?如何使用 LDAP 配置实体框架?
【发布时间】:2016-05-21 02:48:21
【问题描述】:

我想要一个关于如何设置允许 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>

任何样本都会有很大帮助。

【问题讨论】:

    标签: c# oracle entity-framework ldap odp.net


    【解决方案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 Managed Provider 检查这个问题:ODP.NET Managed library does resolve alias, but 32-bit library does

    【讨论】:

    • 感谢您对配置 @wernfried-domscheit 的帮助。至于最后一个链接,我希望它能有所帮助,但不幸的是,我没有使用 Oracle 客户端,因为 ODP.NET 托管驱动程序是完全托管的。因此,Oracle 客户端可以选择退出。另外,我希望您能就如何使用上述 LDAP 设置配置实体框架提供意见。提前致谢。
    【解决方案2】:

    在阅读了一些文档后,我注意到有两种设置 LDAP 的方法。因此,这不是“应该”的问题,而是“哪个”对你有用。正如@Wernfried 建议的那样,我使用了&lt;setting&gt; 标签,根据这个reference 很好。但是,由于某种原因,我不知道它对我不起作用。相反,我留下了 LDAPSettings 部分 here 中指出的最初的&lt;LDAPsetting&gt; 标记,并且它起作用了。

    &lt;connectionStrings&gt; 很简单:

    <connectionStrings>
      <add name="Source" connectionString= "Data Source=ServiceName;password=your_password;User ID=your_user" providerName="Oracle.ManagedDataAccess.Client" />
    </connectionStrings>
    
    • 来源:来源的名称。
    • ServiceName:您要连接的 Oracle 服务。

    对于实体框架,我保留了 NuGet 包安装程序配置的默认设置。在我的项目中,我安装了 Official Oracle ODP.NET, Managed DriverOfficial Oracle ODP.NET, Managed Entity Framework Driver 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>
    

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      相关资源
      最近更新 更多