由于遗留数据库,我需要使用ClassMaps而不是自动映射。但是我没有看到如何调整SharpArch来使用它们。我试图删除AutoPersistentModelGenerator并在InitializeNHibernateSession方法中使用以下代码:
var config = NHibernateSession.Init(webSessionStorage,
new[]{"ApplicationConfiguration.Models.dll"});
Fluently.Configure(config)
.Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<ConfigSchema>();
});
但是在尝试使用ConfigSchema时,我总是得到MappingException - “No persister for:ConfigSchema”。
有没有人试图这样做?
修改
ConfigSchema是域模型的一部分。
答案 0 :(得分:2)
我很蠢。 Fluently.Configure(config)为NHibernate生成一个新配置。所以它永远不会在我的场景中使用。我需要的是在AutoPersistentModelGenerator中使用以下代码:
public AutoPersistenceModel Generate()
{
var mappings = new AutoPersistenceModel();
mappings.AddMappingsFromAssembly(typeof(ConfigVersionMap).Assembly);
return mappings;
}
答案 1 :(得分:0)
我对S#arp项目并不熟悉,但ConfigSchema
是您域模型的类型吗? AddFromAssemblyOf<T>
的通用参数T应该是域模型中的映射类。