在代碼生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)訪問Oracle數據庫,實現免安裝Oracle客戶端,兼容32位64位Orac

因爲咱們開發的輔助工具Database2Sharp須要支持多種數據庫,雖然咱們通常使用SQLServer來開發應用較多,可是Oracle等其餘數據庫也是經常使用的數據庫之一,所以也是支持使用Oracle等數據庫進行代碼的快速生成。在此以前我一直要求用戶使用代碼生成工具的時候,若是使用Oracle開發,則需在開發環境中安裝Oracle客戶端,以便繼續利用微軟的System.Data.OracleClient方式訪問Oracle,不過這樣開發環境就會麻煩一些。另外還帶來一個問題,使用這些驅動的時候,因爲系統的限制,還會區分32位或者64位的問題,不能實現兼容性的訪問。爲了完全解決這個問題,咱們使用ODP.NET(Oracle.ManagedDataAccess.dll)訪問Oracle數據庫,實現免安裝Oracle客戶端,兼容32位64位Oracle驅動。數據庫

1)代碼生成工具介紹

Database2Sharp是一款代碼生成工具和數據庫文檔生成工具,該工具從2005年開始至今,一直伴隨着咱們的客戶和粉絲們經歷着過各類各樣的項目開發,在實際開發中能帶來效率的提升及編程的快樂。編程

Database2Sharp是一款主要用於C#代碼生成以及數據庫文檔生成的工具,軟件支持Oracle、SqlServer、MySql、PostgreSQL、Sqlite、Access以及國產達夢等數據庫的代碼生成,能夠生成各類架構代碼、生成Winform界面代碼、Web界面代碼(包括EasyUI和BootstrapWeb界面)、Entity Framework實體框架代碼、導出數據庫文檔、瀏覽數據庫架構、查詢數據、生成Sql腳本等,還整合自定義模板和數據庫信息的引擎,方便編寫自定義模板調試和開發。生成的框架代碼支持多種數據庫一塊兒使用,也支持不一樣業務的數據庫切割爲多個庫進行使用,是一種適應性很是強、彈性很好的應用框架。緩存

Database2Sharp推薦採用軟件功能「Enterprise Library代碼生成」來生成項目代碼,這個架構體系生成整個項目工程框架,包含實體類、數據訪問類、業務類、Web頁面代碼、WCF相關服務層(可選)、Web API服務層(可選),以及各類服務的調用包裝層代碼等。該架構利用泛型及緩存機制,良好的架構極大簡化代碼,強大完善的基類機制使您甚至不用編寫一行代碼就能順利運行。一個簡單點擊幾回鼠標就能完成一週代碼量的代碼生成工具,效率驚人、友好體貼,真正的開發好伴侶。架構

固然,開發的過程是一個繁複、精細的過程,所以Database2Sharp也吸取了來自咱們本身的實際需求,以及不少同仁朋友的寶貴意見,一直在改進,一直努力作到更好,以求達到一個更加完美、更加易用的境界。框架

在咱們開發軟件的時候,解決方案項目基於必定的分層組織,每一個項目分層中,各個類的關係也是肯定的,藉助輔助工具(結合模板引擎)能夠快速生成咱們所須要的代碼,並極大提升咱們軟件的開發效率,Database2Sharp代碼生成工具就是一款專門針對咱們本身框架結構配套的開發工具。工具

Database2Sharp代碼生成工具,主要是基於數據庫提取的元數據信息,根據表的信息和關係,字段信息等內容,生成咱們框架所須要分層的類代碼。開發工具

對於Winform開發,能夠根據Winform框架或者混合框架的窗體界面類,生成標準的界面代碼,列表界面默認具備分頁查詢、導入導出、高級查詢、編輯、刪除事件綁定,編輯界面則具備獲取數據並顯示在控件,保存後執行更新或者寫入的操做。測試

對於Web開發,能夠根據EasyUI控件界面或者Bootstrap控件界面的不一樣,生成對應的視圖HTML代碼和控制器類代碼,同時這些界面默認也具備分頁查詢,導入導出,顯示明細和保存數據的功能。spa

軟件主要界面以下所示。.net

 

二、代碼生成工具中使用ODP.NET(Oracle.ManagedDataAccess.dll)訪問Oracle數據庫

首先經過Nugget程序包下載一個Oracle.ManagedDataAccess.dll的文件,而後進行使用便可,通過測試使用這個類庫,能夠無視數據庫系統的位數,最重要的是減小了Oracle客戶端的安裝。

爲了和原有的系統支持的OracleClient實現區分,以便繼續保留原有方式的處理,那麼咱們增長一個特別的OracleManaged類實現Oracle元數據的處理便可。

 

 應用這個Oracle.ManagedDataAccess方式,相對於OracleClient方式,咱們幾乎不用變化任何對象的名稱,只是換了一個命名空間而已,基本實現徹底兼容。

有了這個獲取數據的方式,固然須要對數據配置的界面增長一個OracleManaged的對應方式了,由於Oracle.ManagedDataAccess和OracleClient的鏈接字符串有所差別的。

前者Oracle.ManagedDataAccess的鏈接字符串變爲:

Data Source=  (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl.mshome.net)
        )
      );User ID=win;Password=win

依照這個配置的參數咱們修改下Oracle數據庫鏈接字符串的配置界面以下:

 

其中咱們對於Oracle鏈接字符串描述部分,提示參考PLSQL Developer裏面【幫助】【支持信息】 【TNS名稱】的對應部分便可,以下所示。

 

 

 

 有了這些配置信息,咱們就能夠無論服務端或者本地的Oracle版本是32位的仍是64位的,實現所有兼容,而且若是客戶端沒有安裝Oracle客戶端,照樣能夠訪問Oracle服務端的數據的。

運行代碼生成工具,能夠得到Oracle的數據表等信息,能夠在Oracle環境下,無需安裝Oracle客戶端,順暢使用代碼生成工具進行代碼的開發工做了。

相關文章
相關標籤/搜索