ConnectionString в Fluent NHibernate - CodeHelper

ConnectionString в Fluent NHibernate

2

Я новичок в С#, ногами не пинать :) Разбираюсь во Fluent NHibernate

       var config = Fluently.Configure()
          .Database(
            MsSqlConfiguration.MsSql2005
              .ConnectionString(c => c
                  .Server("(local)\\SQLEXPRESS")
                  .Database("TestDB")
                  .Username("sa")
                  .Password("*****"))
          )
          .Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<KidMap>())
          .BuildConfiguration();

Естественно, мне не нравится, такой способ настройки подключения. Хочу, чтобы подключение настраивалось "извне". Как белые люди делают такие вещи?

Популярные ответы

Новые Лучшие

2

Строку подключения можно брать из секции appSettings файла App.config/Web.config. Для этого в конфигурации Fluent NHibernate нужно написать:

var config = Fluently.Configure()
      .Database(
        MsSqlConfiguration.MsSql2005
          .ConnectionString(c => c
              .FromAppSetting("MainConnectionString"))
      )
      .Mappings(m =>
        m.FluentMappings.AddFromAssemblyOf<KidMap>())
      .BuildConfiguration();

В файле App.config (или Web.config):

<configuration>
    <!-- ... -->
    <appSettings>
      <add 
        key="MainConnectionString"
        value="Data Source=.\SQLEXPRESS;Initial Catalog=TestDB;User Id=sa;Password=*****" />
    </appSettings>
    <!-- ... -->
</configuration>
goodron

Ясно. В принципе я видел такие примеры. Только вот у меня этот кусок кода является частью теста. Т.е. проекта типа TestProject. Там где хранится это дело? А вообще в дальнейшем наверное это будет отдельный класс, который будет брать параметры подключения... откуда, кстати, он будет брать параметры подключения, если использовать его в проектах разных типов? Ведь не у всех, я полагаю, есть App.config/Web.config.?

Alexander

Этот отдельный класс наверное не будет "брать" параметры подключения. Вероятно они будут передаваться ему клиентом, использующим этот класс.

goodron

Хорошо. Откуда возьмёт параметры подключения клиент типа TestProject? У него есть что-то типа web.config?

Alexander

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

Чак Норрис

Обычно файл *.config создается для запускаемых проектов. Если проект — это веб-приложение, то создается web.config, если desktop-приложение — то app.config. Для большинства типов веб-проектов web.config создается автоматически, для настольных приходится создавать его вручную (ProjectAdd New ItemApplication Configuration File)

goodron

Спасибо за ответы.

0

Я тоже не спец, но если вопрос в том, откуда брать строку соединения, т.е. параметры "(local)\SQLEXPRESS", "TestDB", "sa", "*", то вместо того, чтобы хардкодить их, можно брать их из конфигурационного файла приложения app.config или web.config. Могу так же предположить, что вместо ConnectionSctring() можно использовать какой-нить другой метод, принимающий путь к udl файлу.

goodron

Udl файл... А если не хочу использовать виндовую авторизацию? И уж тем более не хочу хранить пароль в открытом виде?


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.