流利的Nhibernate返回ORA-06413连接未打开

时间:2015-08-12 10:31:38

标签: c# asp.net-mvc nhibernate oracle11g fluent-nhibernate

我有一些使用Fluent NHibernate作为ORM和ORACLE 11g作为数据库的Web应用程序。

以下是我的Configuration Builder看起来像

return Fluently.Configure()
                .Database(OracleDataClientConfiguration.Oracle10
                                .ConnectionString(c => c.FromConnectionStringWithKey("ora"))
                                .AdoNetBatchSize(100)
                                .Driver<NHibernate.Driver.OracleClientDriver>()
                         )
                .Mappings(mappings => mappings.FluentMappings.AddFromAssemblyOf<UserMapping>())
                //.ExposeConfiguration(ReCreateSchema)
                .BuildConfiguration();

以下是我的连接字符串

<connectionStrings>
    <add name="ora" connectionString="Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=serviceName)));User Id=uidxx;Password=pwdxx;" />
  </connectionStrings>

从配置中,下一步是构建会话工厂

ISessionFactory sesionFactory = config.BuildSessionFactory();

每当我运行应用程序时,它都会抛出代码

的错误
  

ORA-06413:连接未打开

我有没有配置?我也尝试研究解决方案,但一无所获。而且我尝试用OracleClientConfiguration.Oracle10替换配置,但我得到了相同的结果。

谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些研究并做了一些试验/错误(叹气) 发现我必须将配置构建器更改为像这样

return Fluently.Configure()
                .Database(OracleManagedDataClientConfiguration.Oracle10
                                .ConnectionString(c => c.FromConnectionStringWithKey("ora"))
                                .AdoNetBatchSize(100)
                                .Driver<NHibernate.Driver.OracleManagedDataClientDriver>()
                         )
                .Mappings(mappings => mappings.FluentMappings.AddFromAssemblyOf<UserMapping>())
                //.ExposeConfiguration(ReCreateSchema)
                .BuildConfiguration();

在构建此应用程序之前,我还必须为.NET Framework(ODP.NET)安装ORACLE DATA PROVIDER。