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

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

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

<?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 для этого одного проекта с Каслом.

Tuna Toksoz post

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

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

Ответы [ 2 ]

1 голос
/ 26 апреля 2012

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

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

0 голосов
/ 02 ноября 2010

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

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

...