SharpArchitecture:使用 FNH 的 ClassMap 代替自动映射
由于遗留数据库,我需要使用 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 是领域模型的一部分。
I need to use ClassMaps instead of auto mapping because of legacy database. But I don't see how to tune SharpArch to use them. I tried to remove AutoPersistentModelGenerator and use the following code in the InitializeNHibernateSession method:
var config = NHibernateSession.Init(webSessionStorage,
new[]{"ApplicationConfiguration.Models.dll"});
Fluently.Configure(config)
.Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<ConfigSchema>();
});
But I always get MappingException - "No persister for: ConfigSchema" when trying to work with the ConfigSchema.
Has anyone tried to do this?
Edit:
ConfigSchema is a part of domain model.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我很傻。 Fluently.Configure(config) 为 NHibernate 生成一个新的配置。所以它永远不会在我的场景中使用。我所需要的只是在 AutoPersistentModelGenerator 中使用以下代码:
I'm stupid. Fluently.Configure(config) generates a new config for NHibernate. So it will never be used in my scenario. All I was need is to use the following code in the AutoPersistentModelGenerator:
我不太熟悉 S#arp 项目,但是 ConfigSchema 是您域模型中的类型吗?
AddFromAssemblyOf
的通用参数 T 应该是域模型中的映射类。I'm not all that familiar with the S#arp project, but is
ConfigSchema
a type from you domain model? The generic argument T toAddFromAssemblyOf<T>
should be a mapped class from your domain model.