SharpArchitecture:使用 FNH 的 ClassMap 代替自动映射

发布于 2024-08-27 06:29:33 字数 680 浏览 6 评论 0原文

由于遗留数据库,我需要使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

计㈡愣 2024-09-03 06:29:33

我很傻。 Fluently.Configure(config) 为 NHibernate 生成一个新的配置。所以它永远不会在我的场景中使用。我所需要的只是在 AutoPersistentModelGenerator 中使用以下代码:

    public AutoPersistenceModel Generate()
    {
        var mappings = new AutoPersistenceModel();

        mappings.AddMappingsFromAssembly(typeof(ConfigVersionMap).Assembly);

        return mappings;
    }

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:

    public AutoPersistenceModel Generate()
    {
        var mappings = new AutoPersistenceModel();

        mappings.AddMappingsFromAssembly(typeof(ConfigVersionMap).Assembly);

        return mappings;
    }
╭⌒浅淡时光〆 2024-09-03 06:29:33

我不太熟悉 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 to AddFromAssemblyOf<T> should be a mapped class from your domain model.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文