visual studio 2017使用NHibernate4.0連接oracle11g數據庫


   之前一直是公司用NHibernate2.1來做項目,連接oracle 10g的數據庫,配置NHibernate的東西都是以前的同事做好了的,也怪自己太懶了,沒嘗試過配置這個東西,雖然一直在使用NHibernate做項目,前幾天突然有想法想用NHibernate自己做一個項目,才發現配置一個NHibernate並沒有想象中的簡單,前前后后大概花了五天時間,也算是功德圓滿,終於成功了!另外,網上找到的關於NHibernate的資料,大多數都是配置sql server數據庫的,關於oracle這方面的資料也是實在是少,以免大家少走彎路,寫個關於oracle的配置文章!

  開發環境:   visual  studio 2017 Pro+oracle 11g(64bit)+NHibernate 4.0.0.4000

  運行環境:  windows 10  Pro (64bit)

一、前言

      NHibernate是一個面向.NET環境的對象/關系數據庫映射工具。對象/關系數據庫映射(object/relational mapping,ORM)這個術語表示一種技術,用來把對象模型表示的對象映射到基於SQL的關系模型數據結構中去。

在項目中安裝NHibernate 4,我使用的是NuGet下載安裝到我的項目中的;

項目結構:

NuGet安裝NHibernate

第一步

第二步,在瀏覽下輸入你要添加的引用,在要添加引用的項目上打上勾  

二、oracle配置 

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory name="NHibernateConfig">
    <!--此處需要使用oracle公司官網提供的客戶端驅動[我使用的版本為:32bit的ODTwithODAC112012.zip],微軟framework4.0之后就移除了oracle連接dll-->
    <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
    <!--配置連接Oracle數據庫字符串-->
    <property name="connection.connection_string">
      User ID=informix;Password=gmgl;Data Source=glxt
    </property>
    <!--輸出所有SQL語句到控制台-->
    <property name="show_sql">true</property>
    <!--dialect屬性支持的方言選項值-->
    <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
    <!--將Hibernate查詢中的符號映射到SQL查詢中的符號-->
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
    <mapping assembly="informix.Model" /><!--此處指向的是項目Model層的程序集-->
  </session-factory>
</hibernate-configuration>

 

安裝好NHibernate之后,把E:\informix\packages\NHibernate.4.0.0.4000\ConfigurationTemplates下的Oracle.cfg.xml模板拷出來,然后放到你的Bin文件夾下,配置文件內容,如上,

特別需要注意的是屬性:

<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
屬性dialect的值NHibernate.Dialect.Oracle10gDialect可以連接 oracle 10g,也可以連接oracle 11g的數據庫,這點跟java的Hibernate是一樣的
更多的屬性配置見鏈接 http://www.cnblogs.com/siyunianhua/p/6794016.html

三、 Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio(簡稱ODTwithODAC)安裝與visual  studio 2017通過客戶端連接數據庫

ODAC簡介

ODAC 直接使用 Oracle 調用接口 (OCI). OCI 是一種允許應用程序開發人員使用第三方開發語言存取Oracle數據服務器的過程或函數以及控制所有的SQL語句執行狀態的應用程序接口(API)。OCI 通過一個動態運行庫(ORA*.DLL)提供了一個標准的數據庫存取庫及函數,以在應用程序中建立連接。也可以使用ODAC的Net選項而無需在客戶機上安裝Oracle客戶端來連接到Oracle.在這種情況下,ODAC僅需要TCP/IP協議的支持,從而可以創建真正的、最小的數據庫應用程序。

我使用的是32位的ODAC,如下

ODAC 11.2 第 2 版和 Oracle Developer Tools for Visual Studio (11.2.0.1.2)

 下載文件
  下載 ODTwithODAC112012.zip 276 MB(289670995 字節)
    ODAC 安裝說明
     
   

下載包括

   Oracle Developer Tools for Visual Studio 11.2.0.1.2
   Oracle Data Provider for .NET 4 11.2.0.1.2
   Oracle Data Provider for .NET 2.0 11.2.0.1.2
   Oracle Providers for ASP.NET 4 11.2.0.1.2
   Oracle Providers for ASP.NET 2.0 11.2.0.1.2
   Oracle Database Extensions for .NET 4 11.2.0.1.2 — 僅用於升級
   Oracle Database Extensions for .NET 2.0 11.2.0.1.2 — 僅用於升級
   Oracle Provider for OLE DB 11.2.0.1.0
   Oracle Objects for OLE 11.2.0.1.0
   Oracle Services for Microsoft Transaction Server 11.2.0.1.0
   Oracle ODBC Driver 11.2.0.1.0
   Oracle SQL*Plus 11.2.0.1.0
   Oracle Instant Client 11.2.0.1.0


到oracle 官網下載一個oracle 11g對應64位的ODAC安裝包,安裝好之后,要讓這個客戶端能連接上數據庫
把 客戶端下的 product\11.2.0\client_1\Network\Admin\Sample下的兩個文件 sqlnet.ora 和 tnsnames.ora,復制到它的上一層文件夾下,如圖,

<一>

用記事本打開Admin下的 tnsnames.ora文件,修改端口為1521,修改實例名,和localhost,如圖

修改了完之后,重啟計算機。
使用visual studio 2017 通過oracle客戶端連接數據庫
打開工具/連接數據庫

選擇oracle數據庫,然后確定

彈出下面那個文本框,輸入你的數據庫連接信息之后,點擊測試鏈接,提示成功之后,就可以了

一切准備就緒之后,你需要在NHibernate的配置處理類中添加Oracle.DataAccess引用,然后一切都大功告成了!

資料:

http://www.cnblogs.com/lhking/p/3930711.html 

http://blog.csdn.net/fjfdszj/article/details/6637998 

https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Driver/OracleManagedDataClientDriver.cs



如果有任何疑問,可以聯系我的qq:364131167


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM