NHibernate和Oracle Lite

时间:2010-02-24 21:21:08

标签: oracle nhibernate

有没有人能够成功地将NHibernate与Oracle Lite一起使用,如果是,你可以告诉我在hibernate.cfg.xml中需要提及的是什么,我的意思是哪种方言以及我们如何连接它。感谢。

3 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的NH?看起来这个功能很新,只在实际的Aplha中实现:2.1.0.Alpha1 改进:
* [NH-1644] - 具有工作查询参数的Oracle Lite驱动程序

我没有试过,所以我不能说要使用什么连接字符串,但方言应该是'OracleLiteDialect',因为Alexandre Payment说here。 Jira issues已经解决,所以值得一试。

如果能够连接,请发布连接字符串。

答案 1 :(得分:1)

这是我前一段时间做的测试项目的app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
  </configSections>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.OracleLiteDialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
      <property name="connection.connection_string">dsn=TheDSN;uid=TheUserId;pwd=ThePassword</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
      <property name="show_sql">true</property>
    </session-factory>
  </hibernate-configuration>
</configuration>

注意:要连接到本地Oracle Lite数据库:

  • DSN通常构建为<Oracle lite user name>_<Database name>
  • 用户ID为SYSTEM
  • 密码是Oracle Lite用户的实际密码

例如,如果您的OL用户名是SCOTT,您的密码是TIGER,数据库名称是FOO,Oracle Lite连接字符串是:dsn=SCOTT_FOO;uid=SYSTEM;pwd=TIGER

希望这有帮助

答案 2 :(得分:0)

Driver和Dialect类的名称空间分别为NHibernate.DriverNHibernate.Dialect。您可以使用智能感知或反射器来准确查看可用的内容。

Oracle Lite的会话工厂配置:

<property name="connection.connection_string">...</property>
<property name="connection.driver_class">NHibernate.Driver.OracleLiteDataClientDriver</property>
<property name="dialect">NHibernate.Dialect.OracleLiteDialect</property>

Oracle连接字符串的描述为here