• EF CODEFIRST WITH ORACLE


    摸索了半天,运行通过了,但是还是有一点坑的,对于初次使用的人来说,可能会遇到几个问题

    首先安装两个dll

    如果你已经下载好了dll

    Oracle.ManagedDataAccess.dll

    Oracle.ManagedDataAccess.EntityFramework.dll

    可以直接引用

    接下来就是配置文件

    配置文件的写法网上有好几个版本的,发现每个版本似乎都可以?提供一个版本,这些是必须的配置

      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <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="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb"/>
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
          <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>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client"
          connectionString="User Id=test;Password=test;Data Source=(DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)));PERSIST SECURITY INFO=True;"/>

    用户权限的问题

    最好给用户都赋予resource和dba权限,否则EF查询数据的时候只能查到自己插入的,查询不到sysdba用户插入的数据。插入数据的时候也会出现这种问题,如果你发现数据不同步,请检查用户权限问题。

    schema的问题

    [Table("BOOK",Schema ="TEST")]
        public class Book
        {
            [Key]
            public string NAME { get; set; }
    
            public int PRICE { get; set; }
    
    
        }

    大小写的问题

    EF生成的语句时代了“”的,带了引号后,区分了大小写,所以实体字段、表名、Schema一定要和数据库一致

  • 相关阅读:
    软件测试的术语及解释总结
    测试工具
    数据库客户端连接
    应用程序发生错误怎么修改
    软件测试容易忽略的缺陷
    LR中错误解决方法
    LR结果分析2
    LR结果分析
    Hive
    zookeeper
  • 原文地址:https://www.cnblogs.com/njcxwz/p/6496984.html
Copyright © 2020-2023  润新知