2009-11-17 58 views
2

我試圖在我的FNH配置SessionManager類中添加以下內容。 我有20多個實體進行映射,他們都坐在Entities文件夾下的同一個項目中。即。 ProjName.BusinessLogic.Entities 映射類是下ProjName.BusinessLogic.Mappings 這FNHSessionManager.cs文件ProjName.BusinessLogic.DAL在FNH中配置多個實體映射

var cfg = MsSqlConfiguration.MsSql2005 
        .ConnectionString(c => c.FromAppSetting("connectionString")); 

       isf = Fluently.Configure() 
        .Database(cfg) 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<User>()) 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Provider>()) 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Document>()) 
        .BuildSessionFactory(); 

下是否還有更好/更短的方式來增加他們在其他配置比列出他們全部? 我不想分開不同項目中的實體來創建一個新程序集。 或映射到只有1個實體會做?

這是我的第一個使用FNH的項目,而且是全新的。 我甚至不確定我是否在正確的軌道上。

您的建議將不勝感激。

回答

3

您只需要爲每個程序集提供一個映射類到AddFromAssembyOf<T>,並且該程序集內的所有類映射都將被加載。

+0

感謝您的回答。 – May 2009-11-17 02:46:37

0

您不需要全部列出它們。流利的配置映射設置使用程序集中的所有約定。

Fluently.Configure().Mappings(M => m.FluentMappings.AddFromAssembyOf <T>())
.BuildSessionFactory();

(T)可以是來自您父級程序集ProjName.BusinessLogic的任何類。 Fluent將配置您的程序集ProjName.BusinessLogic的映射。

+1

有關更多詳細信息,請參閱http://www.jagregory.com/writings/fluent-nhibernate-configuring-your-application/。 – 2012-11-29 12:33:46