Кто-нибудь сумел написать беглую версию добавления Castle NHibernate Facility?

Кому-нибудь удалось это сделать?

В основном я ищу следующее:

<?xml version="1.0"?>
<configuration>
  <facilities>
    <facility id="nhibernate"
                isWeb="false"
                type="Castle.Facilities.NHibernateIntegration.NHibernateFacility, Castle.Facilities.NHibernateIntegration"
        configurationBuilder="FS.SUV.Services.FluentNHibernateConfigBuilder, FS.SUV.Services">
      <factory id="nhibernate.factory">
        <settings>
          <item key="show_sql">false</item>
          <item key="connection.provider">NHibernate.Connection.DriverConnectionProvider</item>
          <item key="connection.driver_class">NHibernate.Driver.SqlClientDriver</item>
          <item key="dialect">NHibernate.Dialect.MsSql2008Dialect</item>          
          <item key="connection.connection_string_name">DBConnection</item>
          <item key="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory , NHibernate.ByteCode.Castle</item>
        </settings>
      </factory>
    </facility>       
  </facilities> 
</configuration>

И соответствующий код для установки этого будет

 container
   .Install(Castle.Windsor.Installer.Configuration.FromXmlFile("Windsor.config"))

Где Windsor.config - это XML выше.

В свободной форме

Обычно вы можете делать такие вещи, как

             .AddFacility<NHibernateFacility>("NHibernate", cfg=>cfg.FacilityConfig)

Однако из опций в Intellisense неясно, будет ли что-либо предоставлять то, что я хочу из приведенного выше фрагмента xml.

Я сделал несколько поисков, которые вернули следующее, которые либо не работают, либо ссылаются на предыдущую версию. Я использую NHibernate 2 для этого одного проекта с замком.

Тунец Токсоз пост

Но без радости. Может кто-нибудь помочь! Я знаю, я знаю, что всегда могу использовать другой МОК! Но мне любопытно, сталкивался ли кто-нибудь еще с этой проблемой. Я также могу просто оставить его как XML, но я предпочитаю свободную конфигурацию, потому что тогда я могу динамически устанавливать строки соединений и другие заводские свойства по желанию.

Любая помощь будет оценена по достоинству.

2 ответа

Да, существует свободная программа NHibernate по адресу https://github.com/haf/Castle.Facilities.NHibernate.

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

Насколько я знаю, никто не закончил реализацию свободного интерфейса. Это, конечно, нет в хранилище кода. Что дает вам возможность реализовать это и внести свой вклад в проект! Свяжитесь с тунцом, если вы готовы.

В противном случае помните, что конфигурация Windsor может быть построена программно. Это может быть не так красиво, как свободный интерфейс, но это не XML. Вот пример, когда средство NHibernate настраивается программно.

Другие вопросы по тегам