使用NHibernate連接Oracle數據庫是很常見的操作,本文將介紹如何配置NHibernate連接Oracle,并提供一些運用實例。
首先,在配置中需要添加一個引用Oracle的數據供應程序:
<add name="OracleClient" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory" />
然后,在配置文件中定義數據連接字符串。下面的代碼是一個例子:
<connectionStrings> <add name="Orcl" connectionString="Data Source=HOST_OR_IP:PORT/SERVICE_NAME;User ID=USER;Password=PASSWORD;Validate Connection=true;Pooling=true;" providerName="OracleClient" /> </connectionStrings>其中的HOST_OR_IP、PORT、SERVICE_NAME、USER和PASSWORD需要替換為具體的值。
接下來是配置NHibernate的部分。下面的代碼是配置NHibernate連接Oracle的例子:
<hibernate-configuration> <session-factory> <property name="connection.provider" >NHibernate.Connection.DriverConnectionProvider</property> <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property> <property name="connection.connection_string">Data Source=HOST_OR_IP:PORT/SERVICE_NAME;User ID=USER;Password=PASSWORD;Validate Connection=true;Pooling=true;</property> <property name="connection.release_mode">on_close</property> <property name="show_sql">false</property> <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> <mapping assembly="YourAssembly" /> </session-factory> </hibernate-configuration>
其中,connection.provider和connection.driver_class需要設置為NHibernate默認的值,而connection.connection_string需要設置為之前定義的連接字符串。dialect需設置為Oracle數據庫的方言,這里使用的是NHibernate的Oracle10g方言。
此外,還應該注意Oracle數據庫架構名稱的區別,例如Orcl提供的HR表的完整名稱是HR.EMPLOYEES,而不是EMPLOYEES。如果設置不當,可能會出現找不到表或視圖的問題。
最后,例如下面的代碼展示了如何通過NHibernate連接Oracle并查詢數據:
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory(); ISession session = sessionFactory.OpenSession(); IQuery query = session.CreateQuery("from Employee e where e.Department=:department").SetParameter("department", "IT"); IList list = query.List(); foreach (Employee employee in list) { Console.WriteLine(employee.Name); }
本文介紹了如何配置NHibernate連接Oracle,并提供了一些示例。希望讀者能夠在實踐中得到更多的經驗。