2011-09-10 51 views
3

FluentConfigurationException未處理FluentConfigurationException未處理

創建SessionFactory時使用了無效或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。

我的SessionFactory方法:

_sessionFactory = Fluently.Configure() 
       .Database(MsSqlConfiguration.MsSql2008 // 
           .ConnectionString(@"Server=.\SQLExpress;Database=testdb1;Uid=dev;Pwd=123;")) 
       .Mappings(m => m.FluentMappings 
            .AddFromAssemblyOf<User>()) 
       .ExposeConfiguration(cfg => new SchemaExport(cfg) 
               .Create(true, true)) 
       .BuildSessionFactory(); 

內部異常是:

無法代理工廠的配置期間加載類型 'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle'類。

可能的原因是:

  • 的NHibernate.Bytecode提供組件未部署。

  • 用於初始化會話工廠部分的'proxyfactory.factory_class'屬性的typeName格式不正確。

解決方案:

確認您的部署文件夾包含以下組件之一:

NHibernate.ByteCode.LinFu.dll

NHibernate.ByteCode.Castle.dll

我正在測試控制檯應用程序中的東西。我的控制檯應用程序引用了我的Data項目,它具有我所有的nhibernate實體/映射和sessionfactory代碼。

數據項目有在/ bin/debug文件夾下面的:

Castle.core.dll, FluentNHibernate.dll, Iesi.COllection.dll, NHibernate.ByteCode.Castle.dll, NHibernate.dll 

我下載我的所有.dll文件的今天http://fluentnhibernate.org/(所以它的流利1.2使用NHibernate 3.1)

回答

3

我想你必須將對NHibernate.ByteCode.Castle.dll的引用添加到您的控制檯應用程序。

+0

正確。必須將NHibernate.ByteCode.Castle引用添加到應用程序的入口點。如果它是一個控制檯應用程序,那麼控制檯應用程序項目。如果它是一個web應用程序,然後是web應用程序項目等 –

+0

我已經在我的項目中有NHibernate.ByteCode.Castle仍然存在相同的錯誤仍然存​​在。你能否建議可能的其他情況? – Neha