zoukankan      html  css  js  c++  java
  • Nhibernate 链接Oracle10g 使用Oracle.DataAccess

    在ASP.NET 中,打开web.config

    添加配置1

    <configSections>
      <!--NHibernate 配置-->
      <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
    </configSections>

    添加配置2

    <connectionStrings>
      <add name="oracle10gdb" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=ORCL)));User Id=gc;Password=gc;" providerName="Oracle.DataAccess.Client"/>
    </connectionStrings>

    根据自己项目修改HOST,SID及账户密码

    添加配置3

    <!-- Nhibernate 配置 -->
      <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory name="NHibernate.Test">
          <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
          <property name="dialect">NHibernate.Dialect.Oracle10gDialect </property>
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="connection.connection_string_name">
            oracle10gdb
          </property>
          <property name="hbm2ddl.keywords">none</property>
          <property name="show_sql">true</property>
          <property name="current_session_context_class">web</property>
          <!--包含持久化类以及对应映射文件所在的应用程序集名称<property name="show_sql">true</property>-->
          <mapping assembly="Guoc.DAL" />
        </session-factory>
      </hibernate-configuration>

    注意配置3粗体字部分。

    <property name="hbm2ddl.keywords">none</property> 配置原因参考网络上一段话:

    现在已经可以运行下试试了,不过很可能会抛出“OracleClientDriver does not support CallableStatement syntax (stored procedures). Consider using OracleDataClientDriver instead.”这个异常,如果你和我一样用的是“NHibernate.Driver.OracleClientDriver”的话。解决方法是,在hibernate.cfg.xml文件里把“<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>”改成“<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>”,然后把“Oracle.DataAccess.dll”(在Oracle客户端的安装目录下可以找到它)复制到网站的bin目录下。
      再次运行程序,会抛出“无法将类型为“Oracle.DataAccess.Client.OracleConnection”的对象强制转换为类型“System.Data.Common.DbConnection”。 ”异常。引发这个异常的是“NHibernate\Tool\hbm2ddl\SuppliedConnectionProviderConnectionHelper.cs”。第25行:“connection = (DbConnection)provider.GetConnection();”。有一个方法可以绕过这行代码的执行,就是在hibernate.cfg.xml里增加一行“<property name="hbm2ddl.keywords">none</property>”。

  • 相关阅读:
    转: IOS程序内发短信 MFMessageComposeViewController
    对象之间如何比较是否相等?
    相比xib 使用代码编排view 的一个明显的好处就是可以更好地重复使用已有代码,减少代码冗余。
    关于deselectRowAtIndexPath
    IOS中为tableViewCell增加右侧标记(选中或者更多)
    ios 中是否每一个对象(尤其是在使用多线程时),都要判断一下对象是否为nil,以防止程序闪退?
    模拟出ios中流行的黑色背景底
    转 ios给view设置圆角
    转 UIAlertView 不显示、屏幕变灰
    转 UIActivityIndicatorView、UIProgressView 活动与进度指示器-IOS开发
  • 原文地址:https://www.cnblogs.com/iampkm/p/2549002.html
Copyright © 2011-2022 走看看