1.於專案中建立hibernate.cfg.xml檔案[註1]並將原本置放在*.config中hibernate-configuration區段移到hibernate.cfg.xml,並將其檔案屬性內的複製到輸出目錄設為永遠複製,因為NHibernate預設會讀取bin下的hibernate.cfg.xml,若不將hibernate.cfg.xml一同輸出至bin裡,NHibernate將讀取不到設定檔。
hibernate.cfg.xml 檔案內容如下
<?xml version="1.0" encoding="utf-8" ?>2.在呼叫任何NHibernate功能前於程式碼中加入以下片段
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
<property name="dialect">NHibernate.Dialect.PostgreSQL82Dialect</property>
<property name="connection.connection_string">Server=10.0.0.10;Port=5432;Database=dbname;User ID=username;Password=password;</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping assembly="NHibernateTest.Data"/>
</session-factory>
</hibernate-configuration>
Configuration cfg = new Configuration();經由以上設定即可完成NHibernate設定。如果我們不想每次都要將hibernate.cfg.xml 輸出至bin呢?NHibernate也提供指定設定檔位置的方式讀取設定檔。假設hibernate.cfg.xml 置放在web ap根目錄下,我們可將程式碼修改為以下片段,即可讀取設定檔資訊[註2]
cfg.Configure();
Configuration cfg = new Configuration();
cfg.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "hibernate.cfg.xml"));
備註
1.名稱需固定為hibernate.cfg.xml,否則run time會出現找不到設定檔的錯誤訊息
2.此時設定檔名稱可自訂
No comments:
Post a Comment