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

Oracle 11g+FluentNHibernate AutoMapping組合

系統(tǒng) 3426 0

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

本文的上下文環(huán)境

操作系統(tǒng):Win7 x64 Ultimate
開發(fā)工具:Visual Studio 2013

一、前言

  在以前開發(fā)的大多數(shù)場(chǎng)景下,使用的開發(fā)語(yǔ)言是C#,使用的數(shù)據(jù)庫(kù)是Sql Server,這樣的組合,必然少不了Entity Framework這樣的ORM,自從習(xí)慣了Entity Framework,就甩不掉了。這次因?yàn)橐恍v史原因,數(shù)據(jù)庫(kù)必須用Oracle,其實(shí),我不太喜歡Oracle,這樣的數(shù)據(jù)庫(kù)給我的印象是使用起來,無論是安裝客戶端,配置連接,都太費(fèi)勁了。?

  有些事情,你還真得硬著頭皮去嘗試,你不去做,永遠(yuǎn)都不會(huì)明白。因?yàn)槲抑暗捻?xiàng)目Entity Framewor +Sql Server是比較常用的,所以對(duì)Entity Framework這樣的ORM已經(jīng)很熟悉了,Entity Framework的DataBase First和Model First,使用的時(shí)候,總會(huì)遇到一些問題,比如表字段的維護(hù),只能通過設(shè)計(jì)器,更新,如果表很多的話,設(shè)計(jì)器顯示很慢,更新還經(jīng)常出錯(cuò),所以我一直都是用Code First。這次既然是Oracle,我以為很簡(jiǎn)單,換個(gè)引用或連接串就行了(如果以后東西真的這樣就好了)。

?

二、ODP.Net安裝

  首先搜索一番,知道有個(gè)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。這個(gè)ODP.Net其實(shí)和微軟的System.Data.OracleClient一樣,都是提供對(duì)Oracle數(shù)據(jù)庫(kù)訪問的驅(qū)動(dòng),不過ODP.Net是Oracle自己開發(fā)的,可能有些人會(huì)以為,項(xiàng)目中換下引用就行了,其實(shí)一開始我也這么認(rèn)為,之后查了些資料才明白,System.Data.OracleClient用的是Oracle的“最小驅(qū)動(dòng)”,使用的時(shí)候應(yīng)該是不需要安裝Oracle客戶端的,本人沒有實(shí)踐過,使用過的朋友可以幫忙證明下。之后看了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 .這個(gè)我看到最重要的是System.Data.OracleClient已deprecated,在將來的 .Net Framework里就看不到了。所以,現(xiàn)在最好是用ODP.Net。

  首先要下載ODP.Net,這個(gè)要和Oracle服務(wù)器端的版本相對(duì)應(yīng),我用的是Oracle 11g,所以下載了ODAC1120320Xcopy_32bit,我的操作系統(tǒng)是x64的,可以下載32位和64位的,一開始下載了64位的,但是在IIS 7.5里運(yùn)行網(wǎng)站的時(shí)候,提示” 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設(shè)為True,就能正常運(yùn)行了,64位下如果Enable 32-Bit Applications設(shè)為False估計(jì)也行,對(duì)于ODP.Net的安裝, 這里 面有詳細(xì)的介紹,正確安裝相當(dāng)重要。

  Oracle的這部分完成了,下面就是ORM的選擇了,解壓ODP.Net后,在odp.net4\odp.net\doc里看到一個(gè)readme.htm,打開仔細(xì)閱讀,看到這條“ODP.NET 11.2.0.3 does not support Code First nor the DbContext APIs.“瞬間就被震住了。之后在Oracle Community看到社區(qū)管理員的回答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的反應(yīng)真夠慢的。所以,只能放棄Entity Framework了,聽朋友推薦說可以用Fluent NHibernate。

?

三、Fluent NHibernate配置

  所以決定try,在VS2013里引用FluentNHibernate,Install-Package FluentNHibernate -Version 1.4.0,目前是最新版。接下來就是基礎(chǔ)搭建了。
由于在繼承ClassMap的那種方式下,一個(gè)數(shù)據(jù)庫(kù)表會(huì)寫2個(gè)實(shí)體,感覺太麻煩了,我這里用的是AutoMapping,實(shí)體和數(shù)據(jù)庫(kù)表一一對(duì)應(yīng),沒有考慮多表關(guān)聯(lián)問題。

首先是個(gè)DBContext:

? View Code

接下來是一張和數(shù)據(jù)庫(kù)表Product相對(duì)應(yīng)的實(shí)體:

? View Code

接下來是映射關(guān)系:

? View Code

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

? View Code

?

四、測(cè)試

? 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 許可協(xié)議發(fā)布,歡迎轉(zhuǎn)載,演繹或用于商業(yè)目的,但是必須保留本文的署名 lhking (包含鏈接),具體操作方式可參考此處。如您有任何疑問或者授權(quán)方面的協(xié)商,請(qǐng)給我 留言

?

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

Oracle 11g+FluentNHibernate AutoMapping組合嘗試


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲一区二区三区日本久久九 | 一级毛片卡 | 国产精品99re | xx色综合| 欧美高清亚洲欧美一区h | 成人伊人青草久久综合网 | 深夜成人性视频免费看 | 欧美一级毛片欧美一级无片 | 伊人久久国产免费观看视频 | 极品粉嫩粉嫩福利视频在线 | 成人免费性视频 | 国产乱子伦一级毛片 | 久久99国产亚洲精品观看 | 国产精品男人的天堂 | 香蕉视频在线观看黄 | 中文线码中文高清播放中 | 久久香蕉国产线看观看8青草 | 亚州毛色毛片免费观看 | 久久九九爱 | 国产精品福利自产拍网站 | 夜夜躁狠狠躁日日躁视频 | 午夜视频www | 欧美综合成人 | 精品中文字幕不卡在线视频 | 2020国产成人精品视频人 | 99热99热| 露脸真实国产精品自在 | 国内精品久久久久久久久 | 伊人影院视频 | 日本免费新一区二区三区 | 免费一级大毛片a一观看不卡 | 夜夜涩| 激情五月色婷婷丁香伊人 | 草久久久久 | 久久国产乱子伦精品在 | 国产高h | 狠狠色噜噜狠狠狠狠97影音先锋 | 正在播放国产乱子伦视频 | 手机在线精品视频每日更新 | 国产 欧美 日产久久 | 毛片真人毛毛片毛片 |