亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle 11g+FluentNHibernate AutoMapping組合

系統 2959 0

一次Oracle 11g+FluentNHibernate AutoMapping組合嘗試

本文的上下文環境

操作系統:Win7 x64 Ultimate
開發工具:Visual Studio 2013

一、前言

  在以前開發的大多數場景下,使用的開發語言是C#,使用的數據庫是Sql Server,這樣的組合,必然少不了Entity Framework這樣的ORM,自從習慣了Entity Framework,就甩不掉了。這次因為一些歷史原因,數據庫必須用Oracle,其實,我不太喜歡Oracle,這樣的數據庫給我的印象是使用起來,無論是安裝客戶端,配置連接,都太費勁了。?

  有些事情,你還真得硬著頭皮去嘗試,你不去做,永遠都不會明白。因為我之前的項目Entity Framewor +Sql Server是比較常用的,所以對Entity Framework這樣的ORM已經很熟悉了,Entity Framework的DataBase First和Model First,使用的時候,總會遇到一些問題,比如表字段的維護,只能通過設計器,更新,如果表很多的話,設計器顯示很慢,更新還經常出錯,所以我一直都是用Code First。這次既然是Oracle,我以為很簡單,換個引用或連接串就行了(如果以后東西真的這樣就好了)。

?

二、ODP.Net安裝

  首先搜索一番,知道有個ODP.Net,官方介紹:Oracle Data Provider for .NET (ODP.NET) features optimized ADO.NET data access to the Oracle database. ODP.NET allows developers to take advantage of advanced Oracle database functionality, including Real Application Clusters, XML DB, and advanced security. The data provider can be used with the latest .NET Framework 4.5.1 version。這個ODP.Net其實和微軟的System.Data.OracleClient一樣,都是提供對Oracle數據庫訪問的驅動,不過ODP.Net是Oracle自己開發的,可能有些人會以為,項目中換下引用就行了,其實一開始我也這么認為,之后查了些資料才明白,System.Data.OracleClient用的是Oracle的“最小驅動”,使用的時候應該是不需要安裝Oracle客戶端的,本人沒有實踐過,使用過的朋友可以幫忙證明下。之后看了System.Data.OracleClient Namespace的介紹:The System.Data.OracleClient namespace is the .NET Framework Data Provider for Oracle.This types in System.Data.OracleClient are deprecated and will be removed in a future version of the .NET Framework. For more information, see? Oracle and ADO.NET .這個我看到最重要的是System.Data.OracleClient已deprecated,在將來的 .Net Framework里就看不到了。所以,現在最好是用ODP.Net。

  首先要下載ODP.Net,這個要和Oracle服務器端的版本相對應,我用的是Oracle 11g,所以下載了ODAC1120320Xcopy_32bit,我的操作系統是x64的,可以下載32位和64位的,一開始下載了64位的,但是在IIS 7.5里運行網站的時候,提示” Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format." ,所以我下載了32位的,如果IIS 7.5里的Advanced Setting下Enable 32-Bit Applications設為True,就能正常運行了,64位下如果Enable 32-Bit Applications設為False估計也行,對于ODP.Net的安裝, 這里 面有詳細的介紹,正確安裝相當重要。

  Oracle的這部分完成了,下面就是ORM的選擇了,解壓ODP.Net后,在odp.net4\odp.net\doc里看到一個readme.htm,打開仔細閱讀,看到這條“ODP.NET 11.2.0.3 does not support Code First nor the DbContext APIs.“瞬間就被震住了。之后在Oracle Community看到社區管理員的回答ODP.NET does not support EF Code First yet. For the next ODP.NET release (ODAC 12c Release 3), Oracle plans to support this feature. The plan is to release sometime in 2014.我只感到這大Oracle的反應真夠慢的。所以,只能放棄Entity Framework了,聽朋友推薦說可以用Fluent NHibernate。

?

三、Fluent NHibernate配置

  所以決定try,在VS2013里引用FluentNHibernate,Install-Package FluentNHibernate -Version 1.4.0,目前是最新版。接下來就是基礎搭建了。
由于在繼承ClassMap的那種方式下,一個數據庫表會寫2個實體,感覺太麻煩了,我這里用的是AutoMapping,實體和數據庫表一一對應,沒有考慮多表關聯問題。

首先是個DBContext:

? View Code

接下來是一張和數據庫表Product相對應的實體:

? View Code

接下來是映射關系:

? View Code

指定主鍵的生成方式:(這里用的是自己手動賦值,就是在保存的時候,調用DBContext里的GenerateID()方法)

? View Code

?

四、測試

? View Code

??ps:由于是事后之作,沒有來得及整理demo,沒有完整代碼下載,Hope it can help you.

?

引用閱讀:

http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
http://dba.stackexchange.com/questions/44470/why-oracle-sql-developer-does-not-need-oracle-client
http://msdn.microsoft.com/en-us/library/system.data.oracleclient(v=vs.110).aspx ?
http://www.thebestcsharpprogrammerintheworld.com/blogs/connect-to-an-oracle-database-without-an-oracle-client.aspx http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html

本文基于署名 GPL 許可協議發布,歡迎轉載,演繹或用于商業目的,但是必須保留本文的署名 lhking (包含鏈接),具體操作方式可參考此處。如您有任何疑問或者授權方面的協商,請給我 留言

?

?
分類:? Asp.net ,? C# ,? ORM

Oracle 11g+FluentNHibernate AutoMapping組合嘗試


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美亚洲国产一级毛片 | 亚洲欧美成人在线 | 亚洲人成在线观看 | 亚洲视频一区二区在线观看 | 免费看欧美毛片大片免费看 | 国产在视频线精品视频2021 | 亚久久| 国产成人精品久久一区二区三区 | 国产综合久久久久影院 | 2019年国产不卡在线刷新 | 毛片永久新网址首页 | 99re国产精品视频首页 | 精品久久天干天天天按摩 | 国产产一区二区三区久久毛片国语 | 亚洲综合99 | 我要看欧美一级毛片 | 免费黄色的视频 | 四虎永久成人免费 | 一级特黄aaa大片 | 毛片在线不卡 | 久草在线影| 四虎精品在线视频 | 久在线 | 好吊788gaoco | 精品1区2区3区| 日韩免费观看 | 人.成午夜 | 欧美激情精品久久久久久不卡 | 综合在线播放 | 99热这| 久久精品视频3 | 欧美精品日韩一区二区三区 | 久久久精品日本一区二区三区 | 一级毛片秋霞特色大片 | 五月婷婷在线观看视频 | 99在线视频播放 | 亚洲另类第一页 | 国产福利在线观看永久视频 | 国产成人精品日本亚洲麻豆 | 亚洲精品欧洲一区二区三区 | 日本a在线观看 |