最近,我和一位同事使用Fluent NHibernate为一个小型应用程序做后端开发。我们编写了实体、映射文件、持久性管理器,但由于某些原因,我们无法将数据库模式导出到任何地方。
通过调试器,我们发现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();有谁知道为什么会发生这种情况,以及如何修复它?
发布于 2009-05-27 21:51:31
将UserMap设置为公共类型。
https://stackoverflow.com/questions/918157
复制相似问题