【问题标题】:Fluent NHibernate - Configure Oracle Data Provider ODPFluent NHibernate - 配置 Oracle 数据提供者 ODP
【发布时间】:2011-03-17 01:22:40
【问题描述】:

我是 NHibernate 和 Fluent NHibernate 的新手,我正在尝试使以下配置正常工作。

private static ISessionFactory CreateSessionFactory()
{
     return Fluently.Configure() 
       .Database(
       OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=mysource;User ID=myid;Password=mypwd;")                  
          )
         .Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<Program>())
         .BuildSessionFactory();

    }

我引用了 Oracle.DataAccess 程序集。我正在使用 VS 2010 和 .Net 4

我得到以下异常:

FluentNHibernate.Cfg.FluentConfigurationException 未处理 Message=创建 SessionFactory 时使用了无效或不完整的配置。查看PotentialReasons 集合和InnerException 了解更多详情。

来源=FluentNHibernate 堆栈跟踪: 在 d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 98 中的 FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() 在 C:\Projects\CPS Test Concepts\Main\Source\CPSTestConcepts\Source\HibernateLearning\Program.cs:line 48 中的 HibernateLearning.Program.CreateSessionFactory() 在 C:\Projects\CPS Test Concepts\Main\Source\CPSTestConcepts\Source\HibernateLearning\Program.cs:line 21 中的 HibernateLearning.Program.Main(String[] args) 在 System.AppDomain._nExecuteAssembly(RuntimeAssembly 程序集,字符串 [] 参数) 在 System.AppDomain.ExecuteAssembly(字符串 assemblyFile,证据 assemblySecurity,String [] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态,布尔 ignoreSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ThreadHelper.ThreadStart() 内部异常:NHibernate.HibernateException 消息=无法从 NHibernate.Driver.OracleDataClientDriver、NHibernate、版本=2.1.2.4000、文化=中性、PublicKeyToken=aa95f207798dfdb4 创建驱动程序。 来源=NHibernate 堆栈跟踪: 在 NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary2 settings) at NHibernate.Connection.ConnectionProvider.Configure(IDictionary2 设置) 在 NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary2 settings) at NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary2 属性) 在 NHibernate.Cfg.Configuration.BuildSettings() 在 NHibernate.Cfg.Configuration.BuildSessionFactory() 在 d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 93 中的 FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() 内部异常:System.Reflection.TargetInvocationException Message=Exception 已被调用的目标抛出。 源=mscorlib 堆栈跟踪: 在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck) 在 System.RuntimeType.CreateInstanceSlow(布尔 publicOnly,布尔 skipCheckThis,布尔 fillCache) 在 System.RuntimeType.CreateInstanceDefaultCtor(布尔 publicOnly,布尔skipVisibilityChecks,布尔skipCheckThis,布尔fillCache) 在 System.Activator.CreateInstance(类型类型,布尔非公共) 在 System.Activator.CreateInstance(类型类型) 在 NHibernate.Bytecode.ActivatorObjectsFactory.CreateInstance(类型类型) 在 NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary`2 设置) 内部异常:NHibernate.HibernateException Message=无法找到程序集 Oracle.DataAccess 中的 IDbCommand 和 IDbConnection 实现。确保程序集 Oracle.DataAccess 位于应用程序目录或全局程序集缓存中。如果程序集在 GAC 中,请使用应用程序配置文件中的元素来指定程序集的全名。 来源=NHibernate 堆栈跟踪: 在 NHibernate.Driver.ReflectionBasedDriver..ctor(String driverAssemblyName, String connectionTypeName, String commandTypeName) 在 NHibernate.Driver.OracleDataClientDriver..ctor() 内部异常:

【问题讨论】:

  • 我误点击了。对不起。如何删除 wiki 标志?
  • 你不能。您只能删除和重新发布。这没什么大不了的,如果被点赞,您将不会获得任何声望点数。

标签: oracle configuration fluent-nhibernate odp.net


【解决方案1】:

我想通了。当您引用 ODP 时,您必须将引用的复制本地属性设置为 true,否则它将找不到它正在寻找的对象。

一个障碍,我相信会有更多,但我喜欢这些工具!

保罗

【讨论】:

    【解决方案2】:

    如果 ODP dll 的平台与应用程序的平台(x86 与 x64)不匹配,您也可能会遇到此问题。更改您的项目以针对正确的平台进行编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2015-05-05
      • 2023-04-11
      相关资源
      最近更新 更多