Свободный NHibernate 3 и Oracle.DataAccess - PullRequest
2 голосов
/ 23 мая 2011

мой вопрос:

Я пытаюсь использовать Oracle.DataAccess.Client Провайдер с NHibernate (свободно), и я настроил его следующим образом:

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) с копией local = true, но ошибка сохраняется ...

Есть предложения?

1 Ответ

4 голосов
/ 23 мая 2011

Вот фрагмент рабочего кода:

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");
        });
}

Без указания поставщика он автоматически подхватывает Oracle DataAccess.

Редактировать: Это не не забрать его автоматически, у меня просто есть строка подключения:

<add name="development" connectionString="Data Source=XXX;User ID=yyy;Password=zzz;" providerName="Oracle.DataAccess.Client"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...