Кто-нибудь сумел написать беглую версию добавления 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 настраивается программно.