Fluent NHibernate 3和Oracle.DataAccess

Fluent NHibernate 3和Oracle.DataAccess,oracle,nhibernate,odp.net,fluent,Oracle,Nhibernate,Odp.net,Fluent,我的问题: 我正在尝试将Oracle.DataAccess.ClientProvider与NHibernate(Fluent)一起使用,我将其配置如下: Fluently.Configure().Database(OracleClientConfiguration.Oracle10.Provider("Oracle.DataAccess.Client").ConnectionString(c => c.FromConnectionStringWithKey("ORACLE1"))). 我

我的问题:

我正在尝试将
Oracle.DataAccess.Client
Provider与NHibernate(Fluent)一起使用,我将其配置如下:

Fluently.Configure().Database(OracleClientConfiguration.Oracle10.Provider("Oracle.DataAccess.Client").ConnectionString(c => c.FromConnectionStringWithKey("ORACLE1"))).
我有一个错误:

"Could not load type Oracle.DataAccess.Client. Possible cause: no assembly name specified.":"
我已经添加了对
Oracle.Dataaccess
dll(ODAC)的引用,copy local=true,但错误仍然存在


有什么建议吗?

下面是一段有效的代码片段:

public static void InitializeNHibernate()
{
    var configurer = (OracleClientConfiguration.Oracle10.ShowSql().ConnectionString(c =>
                 c.FromConnectionStringWithKey("development"))
                 .DefaultSchema("myschema")
                 .UseReflectionOptimizer()
                 .Cache(c =>
                         c.ProviderClass<SysCacheProvider>()
                         .UseQueryCache()));

    var cfg = Fluently.Configure()
        .Database(configurer)
        .Mappings(m =>
                      {
                          m.FluentMappings
                              .AddFromAssemblyOf<Employee>()
                              .Conventions.Add<OracleDateTimeTypeConvention>();

                          m.HbmMappings
                              .AddFromAssemblyOf<Employee>();
                      })
        .ExposeConfiguration(configuration =>
        {
            configuration.SetProperty(Environment.Hbm2ddlKeyWords, "auto-quote");
            configuration.SetProperty(Environment.GenerateStatistics, "true");
            configuration.SetProperty(Environment.CurrentSessionContextClass, "web");
            configuration.SetProperty(Environment.CommandTimeout, "60");
        });
}
public static void InitializeNHibernate()
{
var configurer=(OracleClientConfiguration.Oracle10.ShowSql().ConnectionString(c=>
c、 FromConnectionStringWithKey(“开发”))
.DefaultSchema(“myschema”)
.UseReflectionOptimizer()
.Cache(c=>
c、 ProviderClass()
.UseQueryCache());
var cfg=fluntly.Configure()
.数据库(配置器)
.Mappings(m=>
{
m、 FluentMappings
.AddFromAssemblyOf()的
.Conventions.Add();
m、 HbmMappings
.AddFromAssemblyOf();
})
.ExposeConfiguration(配置=>
{
configuration.SetProperty(Environment.hbm2ddl关键字,“自动报价”);
configuration.SetProperty(Environment.GenerateStatistics,“true”);
SetProperty(Environment.CurrentSessionContextClass,“web”);
SetProperty(Environment.CommandTimeout,“60”);
});
}
在不指定提供程序的情况下,它会自动拾取Oracle DataAccess

编辑: 它不会自动拾取,我只是在我的连接字符串上:

<add name="development" connectionString="Data Source=XXX;User ID=yyy;Password=zzz;" providerName="Oracle.DataAccess.Client"/>


您确定它使用Oracle DataAccess吗??它不是在使用System.Data.OracleClient吗?我敢肯定。如果我删除引用,它会特别要求它。仅供参考,您不需要System.Data.OracleClient作为参考。我在连接字符串中也尝试了providerName=“Oracle.DataAccess.Client”,但它似乎被忽略。您是如何将Oracle.DataAccess.Client放在框中的?XCOPY或install,因为ADO.NET提供程序必须在配置文件中引用(有关SQL Server提供程序的示例,请参见machine.config)。已安装它。它没有显示在我的选项中,所以我手动添加了它。