Fluent NHibernate-配置Oracle数据提供程序ODP
我对NHibernate和流利的NHibernate是全新的,我正在努力让以下配置发挥作用Fluent NHibernate-配置Oracle数据提供程序ODP,oracle,configuration,fluent-nhibernate,odp.net,Oracle,Configuration,Fluent Nhibernate,Odp.net,我对NHibernate和流利的NHibernate是全新的,我正在努力让以下配置发挥作用 private static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database( OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=mysource;User ID=myi
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();
}
私有静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.数据库(
OracleDataClientConfiguration.Oracle10.ConnectionString(“数据源=mysource;用户ID=myid;密码=mypwd;”)
)
.Mappings(m=>
m、 FluentMappings.AddFromAssemblyOf())
.BuildSessionFactory();
}
我引用了Oracle.DataAccess程序集。我正在使用VS2010和.NET4
我得到以下例外情况:
未处理FluentNHibernate.Cfg.FluentConfigurationException
Message=创建SessionFactory时使用了无效或不完整的配置。有关详细信息,请检查潜在原因集合和InnerException
来源=FluentNHibernate
堆栈跟踪:
在d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:第98行中的FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()处
在C:\Projects\CPS Test Concepts\Main\Source\CPSTestConcepts\Source\HibernateLearning\Program.cs中的HibernateLearning.Program.CreateSessionFactory()处:第48行
在C:\Projects\CPS Test Concepts\Main\Source\CPSTestConcepts\Source\HibernateLearning\Program.cs中的HibernateLearning.Program.Main(字符串[]args)处:第21行
位于System.AppDomain.\u nExecuteAssembly(RuntimeAssembly程序集,字符串[]args)
位于System.AppDomain.ExecuteAssembly(字符串汇编文件、证据汇编安全性、字符串[]args)
在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()上
位于System.Threading.ThreadHelper.ThreadStart\u上下文(对象状态)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态,布尔ignoreSyncCtx)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态)
位于System.Threading.ThreadHelper.ThreadStart()处
InnerException:NHibernate.hibernateeException
Message=无法从NHibernate.driver.OracleDataClientDriver创建驱动程序,NHibernate,版本=2.1.2.4000,区域性=neutral,PublicKeyToken=aa95f207798dfdb4。
来源=NHibernate
堆栈跟踪:
位于NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary2设置)
在NHibernate.Connection.ConnectionProvider.Configure处(IDictionary
2设置)
在NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary2设置)中
在NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary
2属性)中
在NHibernate.Cfg.Configuration.BuildSettings()中
在NHibernate.Cfg.Configuration.BuildSessionFactory()中
在d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:第93行中的FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()处
InnerException:System.Reflection.TargetException
Message=调用目标已引发异常。
Source=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设置)
InnerException:NHibernate.hibernateeException
Message=在程序集Oracle.DataAccess中找不到IDbCommand和IDbConnection实现。确保程序集Oracle.DataAccess位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。
来源=NHibernate
堆栈跟踪:
位于NHibernate.Driver.ReflectionBasedDriver..ctor(字符串驱动程序RassemblyName、字符串连接类型名称、字符串命令类型名称)
在NHibernate.Driver.OracleDataClientDriver..ctor()处
内部异常:我找到了答案。引用ODP时,必须将引用的copy-local属性设置为true,否则它将找不到要查找的对象 一个障碍下来,我相信会有更多,但我喜欢这些工具
Paul如果ODP dll的平台与应用程序的平台(x86与x64)不匹配,也可能会出现此问题。将项目更改为根据正确的平台编译。我错误地单击了它。很抱歉如何删除wiki标志?您不能。您只能删除和重新发布。这没什么大不了的,如果投票率上升,你就不会得到任何声誉分数。