有没有人设法写一个流畅的版本添加城堡NHibernate设施?

时间:2010-11-01 17:11:16

标签: c# nhibernate fluent-nhibernate castle-windsor windsor-nhfacility

有人设法做到了吗?

基本上我正在寻找以下内容:

<?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来实现这个与Castle的项目。

Tuna Toksoz post

但没有快乐。谁能帮忙!我知道,我知道我总能使用不同的IOC!但我很好奇是否有其他人遇到过这个问题。我也可以把它保留为xml,但我更喜欢流畅的配置,因为我可以随意动态设置连接字符串和其他工厂属性。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

是的,https://github.com/haf/Castle.Facilities.NHibernate有一个流利的NHibernate工具。

您可以使用FluentNHibernate对其进行配置,然后您可以进行每个事务会话,每个Web会话请求或会话瞬态生活方式。

答案 1 :(得分:0)

据我所知,没有人完成流畅的界面。它当然不存在于code repository中。这使有机会实现它并将其贡献给项目!如果您愿意,可以与金枪鱼取得联系。

否则,请记住可以通过编程方式构建Windsor配置 。它可能不像流畅的界面那么漂亮,但它也不是XML。以编程方式配置NHibernate工具的Here's an example