NHibernate: доступ к свойствам конфигурации (диалект Sql) во время выполнения - PullRequest
7 голосов
/ 11 ноября 2008

Я хотел бы получить во время выполнения значения для свойств "dialect" и "connection.driver_class", указанных в файле конфигурации.

Вы знаете, как это сделать?

Большое спасибо, Nicola

Ответы [ 2 ]

19 голосов
/ 14 ноября 2008

спасибо за ваш ответ. В этом решении мне не нравится то, что мне нужно сохранить конфигурацию и передать ее методами, которые требуют знания диалекта.

Я нашел пару других способов, которым нужна только ссылка на ISession of ISessionFactory.

С ISession:

    public static Dialect GetDialect(ISession session)
    {
        Dialect dialect = session.GetSessionImplementation().Factory.Dialect;
        return dialect;
    }

Из ISessionFactory:

    public static Dialect GetDialect(ISessionFactory sessionFactory)
    {
        var implementor = sessionFactory as ISessionFactoryImplementor;
        Dialect dialect = implementor.Dialect;
        return dialect;
    }
4 голосов
/ 11 ноября 2008

Когда вы создаете объект конфигурации, загружаете XML и, в конце концов, строите SessionFactory, держитесь за ссылку на объект конфигурации, которая у вас есть.

Вы можете использовать объект Properties имеющейся у вас ссылки на Конфигурацию или сделать что-то вроде Dialect.GetDialect (_configuration.Properties).

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