Свободный доступ к NHibernate из настроек приложения

Я хочу настроить свой NHibernate Fluent из app.config и appSettingKey.

Кто-нибудь может объяснить, как должен выглядеть файл app.config?

MsSqlConfiguration.MsSql2005  
   .ConnectionString(c => c  
    .FromAppSetting("appSettingKey")); 

И это моя строка соединений

Data Source=(local);Initial Catalog=ABC;Integrated Security=True

Это не работает:

<appSettingKey>"Data Source=.;Initial Catalog=ABC;Integrated Security=True"</appSettingKey>

// Матс, Стокгольм, Швеция


person Mats    schedule 21.02.2009    source источник
comment
Думаю, у Эрика есть ответ. Вы хотели также спросить, почему ваша строка подключения не работает? Возможно, вы захотите попробовать Integrated security=SSPI   -  person mookid8000    schedule 22.02.2009


Ответы (3)


Если я вас правильно понял, вы хотите настроить Fluent NHibernate, как в вашем примере, и использовать строку подключения из App.config. Ниже приведен пример того, как я это сделаю.

App.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="FluentNHibernateConnection"
      value="server=.;Initial Catalog=YourDB;Integrated Security=True" />
  </appSettings>
</configuration>

Код для создания фабрики сеансов:

private static ISessionFactory CreateSessionFactory()
{
    var fluentConfig = MsSqlConfiguration.MsSql2005
        .ConnectionString.FromAppSetting("FluentNHibernateConnection");

    PersistenceModel persistenceModel = new PersistenceModel();
    persistenceModel.addMappingsFromAssembly(typeof(User).Assembly);

    Configuration nhConfig = new Configuration()
        .AddProperties(fluentConfig.ToProperties());

    persistenceModel.Configure(nhConfig);

    return nhConfig.BuildSessionFactory();
}

Надеюсь, поможет.

/Эрик (парень из "Стокгольмара")

person Erik Öjebo    schedule 22.02.2009

Ознакомьтесь с Конфигурация базы данных в Свободная вики NHibernate.

person James Gregory    schedule 22.02.2009

Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.ConnectionString(
                                c => c.FromConnectionStringWithKey(connectStringKey)
                            )//End ConnectionString
                        )//End Database
                .Mappings(m =>m.FluentMappings.AddFromAssemblyOf<ADomainClassType>())
                .BuildSessionFactory();

Вот как я строю свою фабрику сеансов.

person JDPeckham    schedule 15.07.2012