2009-05-27 77 views
16

一位同事和我最近在做一个使用Fluent NHibernate的小型应用程序的后端。我们写了我们的实体,映射文件,持久性管理器,但出于某种原因,我们无法将数据库模式导出到任何东西。流利的NHibernate FluentMappings.AddFromAssemblyOf <>问题

通过调试器,我们发现FluentMappings.AddFromAssemblyOf返回0映射,即使它们清晰可见,并且显然是正确的。我们尝试了所有我们能想到的事情,并最终不得不手动添加每个映射。

以下是没有工作的代码:

 return Fluently.Configure().Database(
      MsSqlConfiguration.MsSql2005 
       .ConnectionString(c => c 
       .TrustedConnection() 
       .Server("localhost") 
       .Database("LDTT"))) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>()) 
      .ExposeConfiguration(BuildSchema) 
      .BuildSessionFactory(); 

尽管这段代码没有工作:

 return Fluently.Configure().Database(
      MsSqlConfiguration.MsSql2005 
       .ConnectionString(c => c 
       .TrustedConnection() 
       .Server("localhost") 
       .Database("LDTT"))) 
       .Mappings(m => m.FluentMappings.Add<ClientMap>()) 
       .Mappings(m => m.FluentMappings.Add<ContactMap>()) 
       .Mappings(m => m.FluentMappings.Add<DepartmentMap>()) 
       .Mappings(m => m.FluentMappings.Add<DivisionMap>()) 
       .Mappings(m => m.FluentMappings.Add<FileMap>()) 
       .Mappings(m => m.FluentMappings.Add<FileTypeMap>()) 
       .Mappings(m => m.FluentMappings.Add<RegionMap>()) 
       .Mappings(m => m.FluentMappings.Add<TimeEntryMap>()) 
       .Mappings(m => m.FluentMappings.Add<UserMap>()) 
      .ExposeConfiguration(BuildSchema) 
      .BuildSessionFactory(); 

有谁知道为什么会这样,以及如何解决它?

+1

+1,因为你帮助我了解如何设置映射 – Phil 2011-10-19 02:21:58

回答

18

使用UserMap a public类型。

+0

对我而言,这是一个小小的疏漏,带来很大的后果。谢谢你的帮助! – Cody 2009-05-27 22:02:42