如何使用 NHibernate 連接 Sybase ASE

RojerChen.2014.05.09

最近因為工作的關係要連接 Sybase ASE 資料庫,原本是想要使用 Entity Framework,不過目前 Sybase 只支援到 EF 4.3 、VS2008、VS2010,因為遍尋不著 Entity Framework Data Provier for Sybase,只好選擇 NHibernate。

1.使用 Visual Studio 透過 NuGet 安裝 NHibernate,或是連到 官網 下載


2.下載的 NHibernate 壓縮檔裡面,有一個 SybaseASE.cfg.xml ,略微修改成自己環境的設定,並且注意自己使用 Sybase 資料庫是哪一個版本,Sybase SQL Any Where 和 Sybase ASE 是不一樣的東西。

 <?xml version="1.0" encoding="utf-8"?>  
 <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">  
      <session-factory name="NHibernate.Test">  
           <property name="connection.driver_class">NHibernate.Driver.SybaseAseClientDriver</property>  
           <property name="connection.connection_string">  
                Data Source=10.0.0.1;Port=5000;Database=nhibernate;User ID=nhibernate;Password=password  
           </property>  
           <property name="dialect">NHibernate.Dialect.SybaseASE15Dialect</property>  
           <property name="query.substitutions">true=1;false=0</property>  
      </session-factory>  
 </hibernate-configuration>  

目前支援 Sybase 的相關資訊,其餘資料庫可以參考 官網說明

Table 3.3. NHibernate SQL Dialects (dialect)
RDBMSDialectRemarks
Sybase Adaptive Server Enterprise 15NHibernate.Dialect.SybaseASE15Dialect
Sybase Adaptive Server Anywhere 9NHibernate.Dialect.SybaseASA9Dialect
Sybase Adaptive Server Anywhere 10NHibernate.Dialect.SybaseASA10DialectDeprecated. Use the Sybase SQL Anywhere 10 Dialect instead.
Sybase SQL Anywhere 10NHibernate.Dialect.SybaseSQLAnywhere10Dialect
Sybase SQL Anywhere 11NHibernate.Dialect.SybaseSQLAnywhere11Dialect

3.將 Sybase.AdoNet2.AseClient.dll 這個檔案放置在開發環境底下,安裝 Sybase ASE 時預設的安裝路徑為 C:\Sybase\DataAccess\ADONET\dll\Sybase.AdoNet2.AseClient.dll
如果沒有將檔案放置在開發環境上面就會跑出這樣的錯誤

4.撰寫 CODE ,至於 C# 要如何寫 NHibernate 可以參考下面幾段 YouTube 影片,這樣應該就可以連接 Sybase ASE 了。

C# NHibernate 3.3 Setting up
C# NHibernate 3.3 Domain, Mapping and NHibernate Helper
C# NHibernate 3.3 CRUD Functionality

※系統環境
VS2013
NHibernate 3.3.3.4001
Adaptive Server Enterprise 15.7.0

    Blogger Comment

0 意見: