我和一位同事最近使用Fluent NHibernate为一个小应用程序做后端.我们编写了实体,映射文件,持久性管理器,但由于某种原因,我们无法将数据库模式导出到任何东西.
通过调试器,我们发现FluentMappings.AddFromAssemblyOf返回0映射,即使它们显然在那里,并且显然是正确的.我们尝试了我们能想到的一切,最终不得不手动添加每个映射.
以下是无效的代码:
return Fluently.Configure().Database( MsSqlConfiguration.MsSql2005 .ConnectionString(c => c .TrustedConnection() .Server("localhost") .Database("LDTT"))) .Mappings(m => m.FluentMappings.AddFromAssemblyOf()) .ExposeConfiguration(BuildSchema) .BuildSessionFactory();
虽然这段代码确实有效:
return Fluently.Configure().Database( MsSqlConfiguration.MsSql2005 .ConnectionString(c => c .TrustedConnection() .Server("localhost") .Database("LDTT"))) .Mappings(m => m.FluentMappings.Add()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .Mappings(m => m.FluentMappings.Add ()) .ExposeConfiguration(BuildSchema) .BuildSessionFactory();
有谁知道为什么会这样,以及如何解决它?
使UserMap成为公共类型.