Свободный NHibernate - как настроить для оракула? - PullRequest
8 голосов
/ 19 февраля 2009

Почти наверняка глупый вопрос, но я нигде не могу найти ответ.

В учебном пособии Getting Started база данных - SQLite, поэтому его создание фабрики сеансов выполняется с помощью класса SQLiteConfiguration в пространстве имен FluentNHibernate.Cfg.Db

Отлично! Но я не вижу класс конфигурации для использования базы данных Oracle. Как мне это сделать?

Перекрестная публикация в свободный список рассылки NH (с ответом)

Ответы [ 2 ]

8 голосов
/ 02 июня 2009

Это работает для меня. Надеюсь, это поможет!

private static ISessionFactory CreateSessionFactory()
    {

        var cfg = OracleClientConfiguration.Oracle9
            .ConnectionString(c =>
                c.Is("DATA SOURCE=<<NAME>>;PERSIST SECURITY INFO=True;USER ID=<<USER_NAME>>;Password=<<PASSWORD>>"));

        return Fluently.Configure()
                .Database(cfg)
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<CLASS_NAME>().ExportTo(@".\"))
                .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();
    }

    private static void BuildSchema(NHibernate.Cfg.Configuration config)
    {
        // this NHibernate tool takes a configuration (with mapping info in)
        // and exports a database schema from it
        new SchemaExport(config)
          .Create(false, true);
    }
3 голосов
/ 19 февраля 2009

Вам это помогает?

http://tiredblogger.wordpress.com/2008/12/04/persistanceconfiguration-for-oraclefluent-nhibernate/

Редактировать: В упомянутом коде используется класс ConnectionStringExpression, которого больше нет в Fluent NHibernate. Однако этот класс не используется ни для чего, кроме хранения поля OracleConfiguration _config . Вы можете безопасно добавить поле в класс OracleConnectionStringExpression и удалить его.

Остается проблема в том, что NHibernate теперь по какой-то причине будет искать компоненты, которых нет в текущей сборке Oracle.DataAccess. Если вы хотите справиться с этим, вы можете сделать то, что усталый блоггер сделал здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...