连接未打开

本文关键字:连接 | 更新日期: 2023-09-27 18:07:32

我有一个web应用程序,使用Fluent NHibernate作为ORM, ORACLE 11g作为数据库。

下面是我的配置生成器,看起来像

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: Connection not Open

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

谢谢!

连接未打开

经过一番研究和试错(叹气)发现我必须将配置构建器更改为如下

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();

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