2011-04-30 149 views
1

我從NH 2.1/Fluent 1.1升級到NH 3.1/Fluent 1.2。我使用LinFu作爲代理,但升級後無論我配置NH如何嘗試加載Castle。 進出口設置流利使用NHibernate忽略proxyfactory屬性

Configuration _Configuration; 
FluentConfiguration _FluentConfig; 
_Configuration = new Configuration(); 
_Configuration.Configure(); 
_FluentConfig = Fluently.Configure(_Configuration) 
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<FluentNHSession>())) 

而且nhibernate.cfg配置爲使用李林甫:

<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property> 

運行時將引發異常說它無法找到城堡dll的應用程序。使用相同的nhibernate.cfg,但在bin目錄中刪除城堡ddl的效果很好,看起來像NH忽略了配置。

回答

1

我有同樣的問題。我通過在我的流暢配置中包含此行來解決此問題。

sessionFactory = Fluently.Configure(normalConfig) 
       .Mappings(m => 
        m.FluentMappings 
        .AddFromAssemblyOf<OrderHeaderMap>() 
        .Conventions.AddFromAssemblyOf<PascalCaseColumnNameConvention>()) 
       .ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu") 
       .BuildSessionFactory(); 

如果這個答案在這裏或任何其他的回答可以幫助你,請把它標記爲通過單擊選中標記答案。

+0

我不確定這是否正確。 ''ProxyFactoryFactory'只對'Database'進行調用時存在,所以'Fluently.Configure()。數據庫(MsSqlConfiguration.MsSql2008.ConnectionString(「connstring」)。ProxyFactoryFactory(「」))''會工作。 – Kezzer 2011-05-06 10:23:04