我和一位同事最近正在使用 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();
有谁知道为什么会发生这种情况,以及如何解决它?
最佳答案
使 UserMap 成为公共(public)类型。
关于c# - Fluent NHibernate FluentMappings.AddFromAssemblyOf<> 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/918157/