• 使用WEBAPI连接到ORACLE配置流程


    1.引用DLL

    Oracle.ManagedDataAccess.dll 

    Oracle.ManagedDataAccess.EntityFramework.dll  

    下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html 

    2.修改Web.Config

    <configSections>
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <!--<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />-->  
      </configSections>
    
      <entityFramework>
        <defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory,
    Oracle.ManagedDataAccess.EntityFramework,
    Version=6.121.2.0,
    Culture=neutral,
    PublicKeyToken=89b483f429c47342" />
        <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>
    
      <system.data>
        <DbProviderFactories>
          <remove invariant="Oracle.ManagedDataAccess.Client" />
          <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
              type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
        </DbProviderFactories>
      </system.data>

    3.连接字符串配置

    3.1 配置连接字符串方式

    <connectionStrings>
    
        <add name="OraString" connectionString="Data Source= (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = *****)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      );User ID=*****;Password=*****;Persist Security Info=True" providerName="Oracle.ManagedDataAccess.Client" />
    
      </connectionStrings>

    3.2 使用TNS配置连接(即tnsnames.ora配置文件)

    
    
    <oracle.manageddataaccess.client>
        <version number="*">
          <settings>
            <setting name="配置连接名" value="ora文件路径" />
            <setting name="TraceOption" value="1" />
            <setting name="PerformanceCounters" value="0" />
          </settings>
        </version>
      </oracle.manageddataaccess.client>

    3.3 如果本机安装了oracle,需要检查以下配置字段,如果有修改版本号Version 为当前Oracle.ManagedDataAccess.Client版本。

    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

    3.遇到的问题

    故障:ORA-01918: 用户 'dbo' 不存在

    原因:EF Provider未切换到换成支持Oracle

    解决方法:在上下文里重载OnModelCreating

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.HasDefaultSchema("这里写你的Oracle用户名,一定要大写噢!");
            }
    位置:上下文一般为:“ 应用名.cs ”, 特征为继承了: DbContext类,可以Ctrl+F全局搜索“: DbContext”找到具体位置。

    注意事项:完成后,需要重新使用Enable-Migrations重新刷新一下edmx。

    有关转载原文以及推荐:

    https://www.cnblogs.com/wlflovenet/p/4187455.html

    http://www.bubuko.com/infodetail-2002598.html

  • 相关阅读:
    Linux 强制安装 rpm 包
    记录一次spark编译遇到的问题
    Java Web 应用开发概述
    unittest自动化测试框架
    IOS OpenGL ES GPUImage 强光混合 GPUImageHardLightBlendFilter
    IOS OpenGL ES GPUImage 滤色混合 GPUImageScreenBlendFilter
    IOS OpenGL ES GPUImage 图像旋转 GPUImageTransformFilter
    IOS OpenGL ES GPUImage 差值混合 GPUImageDifferenceBlendFilter
    IOS OpenGL ES GPUImage 色彩减淡混合 GPUImageColorDodgeBlendFilter
    IOS OpenGL ES GPUImage 减法混合 GPUImageSubtractBlendFilter
  • 原文地址:https://www.cnblogs.com/magicalconch/p/14457576.html
Copyright © 2020-2023  润新知