步骤及遇到的问题

2019-10-08 15:35 来源:未知

3.然后就能够拉长实人体模型型了。此时一旦vs中展现找不到与ef6 包容的实业框架提供程序,必要将安排文件中的ef节的 <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />删掉只怕注释掉,保存后再重复尝试增加实人体模型型。

Oracle Type Default EDM Type Custom EDM Type
Number(1,0) Int16 bool
Number(2,0) to Number(3,0) Int16 byte
Number(4,0) Int16 Int16
Number(5,0) Int16 Int32
Number(6,0) to Number(9,0) Int32 Int32
Number(10,0) Int32 Int64
Number(11,0) to Number(18,0) Int64 Int64
Number(19,0) Int64 Decimal

潜心 entityFramework和 system.data中的版本号,nuget安装后自动生成的日常没难点,小编在设置从前把英特网找的素材里的配置项放在当中了,不过版本号不雷同,程序运维不了,一向没留心到版本号,

2.数据层项目标.net版本改成4.5上述,使用nuget安装 EntityFramework 6 +Oracle.ManagedDataAccess +Oracle.ManagedDataAccess.EntityFramework,都设置新型稳定版。

焚薮而田方案中的数据层项目早期使用的是oracle 11g + ef5 成立的实人体模型型,在分页时遇到了skip参数为0报错的主题材料,未有找到有关材质。

如此那般做的由来是假诺DDL生成模板使用默许项SSDLToOracle.tt ,网络游戏新,oracle中的number(1,0)和number(2,0)类型的字段生成的实业性质的体系会是int16,然后运转的时候报映射不合营的荒谬(错误代码2019)。

设置后app.config和web.config都会被参与如下配置项

附上ef5的映射

找了好一会才发觉是那多少个地点。

累加实人体模型型时须要先不选用数据Curry的表,即生成空模型,然后展开edmx文件,在模型浏览器中当选实人体模型型,在性质中把DDL生成模板改成SSDLToOracle.tt (VS),数据库生成职业流改成Generate Oracle Via T4 (TPT).xaml (VS)。

<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.122.1.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.122.1.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.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <publisherPolicy apply="no" />
        <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>

1.安装odac,下载地址

SSDLToOracle.tt模板生成的品质的项目是number(1,0)对应boolean,number(2,0)对应byte,这一个相应关系与新映射是一模一样的。

于是乎决定进级到ef6,在oracle官方网站中得知,Oracle Data Provider for .NET in ODAC 12c Release 3 最初扶助ef6(

设置步骤:

报错原因是oracle从ODP.NET 12.1.0.2起来为ef6用到新的暗许类型映射,官方网址证实 New Default Mappings 段。

TAG标签:
版权声明:本文由澳门国际银河备用网址发布于网络游戏新,转载请注明出处:步骤及遇到的问题