我正在尝试在我的FNH配置SessionManager类中添加以下内容。 我有20多个要映射的实体,它们都位于Entities文件夹下的同一个项目中。即。 ProjName.BusinessLogic.Entities 映射类位于ProjName.BusinessLogic.Mappings下 此FNHSessionManager.cs文件位于ProjName.BusinessLogic.DAL
下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的项目,而且是全新的。 我甚至不确定自己是否走在正确的轨道上。
非常感谢您的建议。
答案 0 :(得分:3)
您只需要为每个程序集提供一个映射类到AddFromAssembyOf<T>
,并且将加载该程序集中的所有类映射。
答案 1 :(得分:0)
您无需全部列出。 Fluent配置映射设置以使用程序集中的所有约定。
Fluently.Configure().Mappings(m =&gt; m.FluentMappings.AddFromAssembyOf <T>
())
.BuildSessionFactory();
(T)可以是您父程序集ProjName.BusinessLogic中的任何类。 Fluent将从程序集ProjName.BusinessLogic配置映射。