2009-11-17 26 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