最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用ef6創(chuàng)建oracle數(shù)據(jù)庫的實體模型遇到的問題及解決方案

 更新時間:2017年11月09日 11:37:24   作者:ohmycode  
這篇文章主要介紹了使用ef6創(chuàng)建oracle數(shù)據(jù)庫的實體模型遇到的問題及解決方案,需要的朋友可以參考下

解決方案中的數(shù)據(jù)層項目最初使用的是oracle 11g + ef5 創(chuàng)建的實體模型,在分頁時遇到了skip參數(shù)為0報錯的問題,沒有找到相關(guān)資料。

于是決定升級到ef6,在oracle官網(wǎng)中得知,Oracle Data Provider for .NET in ODAC 12c Release 3 開始支持ef6(https://docs.oracle.com/cd/E56485_01/win.121/e55744/release_changes.htm#CIHGIAEG

安裝步驟:

1.安裝odac,下載地址http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html

2.數(shù)據(jù)層項目的.net版本改成4.5以上,使用nuget安裝 EntityFramework 6 +Oracle.ManagedDataAccess +Oracle.ManagedDataAccess.EntityFramework,都安裝最新穩(wěn)定版。

安裝后app.config和web.config都會被加入如下配置項

<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>

注意 entityFramework和 system.data中的版本號,nuget安裝后自動生成的一般沒問題,我在安裝之前把網(wǎng)上找的資料里的配置項放在里面了,但是版本號不一致,程序啟動不了,一直沒注意到版本號,

找了好一會才發(fā)現(xiàn)是這兩個地方。

3.然后就可以添加實體模型了。此時如果vs中顯示找不到與ef6 兼容的實體框架提供程序,需要將配置文件中的ef節(jié)的 <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />刪掉或者注釋掉,保存后再重新嘗試添加實體模型。

添加實體模型時需要先不選擇數(shù)據(jù)庫里的表,即生成空模型,然后打開edmx文件,在模型瀏覽器中選中實體模型,在屬性中把DDL生成模板改成SSDLToOracle.tt (VS),數(shù)據(jù)庫生成工作流改成Generate Oracle Via T4 (TPT).xaml (VS)。

這么做的原因是如果DDL生成模板使用默認項SSDLToOracle.tt ,oracle中的number(1,0)和number(2,0)類型的字段生成的實體屬性的類型會是int16,然后運行的時候報映射不匹配的錯誤(錯誤代碼2019)。

報錯原因是oracle從ODP.NET 12.1.0.2開始為ef6采用新的默認類型映射,官網(wǎng)說明https://docs.oracle.com/cd/E56485_01/win.121/e55744/entityDataTypeMapping.htm#ODPNT8303,其中的 New Default Mappings 段。

SSDLToOracle.tt模板生成的屬性的類型是number(1,0)對應(yīng)boolean,number(2,0)對應(yīng)byte,這個對應(yīng)關(guān)系與新映射是一致的。

附上ef5的映射

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

總結(jié)

以上所述是小編給大家介紹的使用ef6創(chuàng)建oracle數(shù)據(jù)庫的實體模型遇到的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用JavaScriptCore實現(xiàn)OC和JS交互詳解

    使用JavaScriptCore實現(xiàn)OC和JS交互詳解

    JavaScriptCore是webkit的一個重要組成部分,主要是對JS進行解析和提供執(zhí)行環(huán)境。下面這篇文章主要給大家介紹了使用JavaScriptCore實現(xiàn)OC和JS交互的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-03-03
  • JavaScript實現(xiàn)頁面跳轉(zhuǎn)的八種方式

    JavaScript實現(xiàn)頁面跳轉(zhuǎn)的八種方式

    這篇文章介紹了JavaScript實現(xiàn)頁面跳轉(zhuǎn)的八種方式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • JavaScript中Object.values()的用法舉例

    JavaScript中Object.values()的用法舉例

    這篇文章主要給大家介紹了關(guān)于JavaScript中Object.values()的用法舉例,Object.values()是JavaScript中一個內(nèi)置的靜態(tài)函數(shù),用于返回一個對象中所有屬性值的數(shù)組,需要的朋友可以參考下
    2023-09-09
  • javascript權(quán)威指南 學(xué)習(xí)筆記之變量作用域分享

    javascript權(quán)威指南 學(xué)習(xí)筆記之變量作用域分享

    最近一直在看《javascript權(quán)威指南 第五版》,變量作用域這一章,看得真的有點累。不過,收獲還是多多。
    2011-09-09
  • JS+flash實現(xiàn)chrome和ie瀏覽器下同時可以復(fù)制粘貼

    JS+flash實現(xiàn)chrome和ie瀏覽器下同時可以復(fù)制粘貼

    chrome和ie同時可以復(fù)制粘貼,想必大家一直思索的問題在本文將有一個不錯的實現(xiàn),下面為大家介紹下JS+flash是如何實現(xiàn)的,感興趣的朋友可以參考下
    2013-09-09
  • JS控制表單提交的方法

    JS控制表單提交的方法

    這篇文章主要介紹了JS控制表單提交的方法,可實現(xiàn)基于javascript提交表單信息的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 有關(guān)suggest快速刪除后仍然出現(xiàn)下拉列表的bug問題

    有關(guān)suggest快速刪除后仍然出現(xiàn)下拉列表的bug問題

    寫suggest的時候,有時我們快速刪除輸入框的文字后,但是suggest下拉列表還有出現(xiàn),導(dǎo)致的原因是因為ajax異步請求造成的,下面通過本文給大家分享下解決方法,感興趣的朋友一起看看
    2016-12-12
  • Js組件的一些寫法

    Js組件的一些寫法

    今天看了rank的一篇javascript腳本控件topic,突然想總結(jié)一下一些寫JS組件的方法,或者說一些不同人的不同coding style。
    2010-09-09
  • 通過js獲取div的background-image屬性

    通過js獲取div的background-image屬性

    div的background-image這個屬性,只是設(shè)置它的url,下面為大家介紹下如何獲取它的background-image屬性,感興趣的朋友可以參考下
    2013-10-10
  • js仿百度音樂全選操作

    js仿百度音樂全選操作

    這篇文章主要為大家詳細介紹了js仿百度音樂全選操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

上虞市| 天水市| 德安县| 闸北区| 博爱县| 麦盖提县| 驻马店市| 秦安县| 稻城县| 吉首市| 元阳县| 大姚县| 新兴县| 海南省| 都兰县| 城步| 义乌市| 积石山| 阿尔山市| 乌兰察布市| 商丘市| 清远市| 普宁市| 凌海市| 四子王旗| 延川县| 清镇市| 黑水县| 平远县| 开封县| 石景山区| 庆云县| 清水河县| 鹿邑县| 临沧市| 咸丰县| 象州县| 孟连| 泸溪县| 民和| 新源县|