繁体   English   中英

带有Oracle的实体框架-Edmmapping

[英]Entity Framework with Oracle - Edmmapping

我正在使用Oracle旧版数据库上的Entity Framework 6。 EF例如将Number(1)自动映射为bool或将Number(2)自动映射为字节,但是我需要将它们全部都作为Int32。

我已将edmMappings块添加到app.config中,如Oracle所述: https ://docs.oracle.com/cd/E56485_01/win.121/e55744/entityDataTypeMapping.htm#BABGBJCI但它不起作用,始终生成bool和int16而不是int32

我在app.config中的映射:

<oracle.manageddataaccess.client>
    <version number="*">
      <edmMappings>
        <edmNumberMapping>
          <add NETType="int32" MinPrecision="1" MaxPrecision="1" DBType="Number" />
          <add NETType="int32" MinPrecision="2" MaxPrecision="3" DBType="Number" />
          <add NETType="int32" MinPrecision="4" MaxPrecision="5" DBType="Number" />
          <add NETType="int32" MinPrecision="6" MaxPrecision="10" DBType="Number" />
          <add NETType="int64" MinPrecision="11" MaxPrecision="19" DBType="Number" />
        </edmNumberMapping>
      </edmMappings>
      <dataSources>
        <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>

我在此块中尝试了不同的方法,但没有任何变化。 还有什么我需要配置的吗?

我遇到过同样的问题。 我从软件包中删除了引用“ Oracle.ManagedDataAccess”,并从Oracle Developer Tools(C:\\ Program Files(x86)\\ Oracle Developer Tools for VS2015 \\ odp.net \\ managed \\ common \\ Oracle)中将引用设置为已安装的驱动程序.ManagedDataAccess.dll)。 然后映射就开始了。

如果您还没有这样做:除了edmMappings,我认为您还必须更改模型实体中属性的类型 例如,在Visual Studio中,打开模型图(* .edmx),然后在数据库中右键单击类型为Number(X)的属性,打开“属性”,然后将“类型”更改为所需的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM