SharpArchitecture:使用FNH的ClassMaps而不是自动映射

时间:2010-04-04 05:06:35

标签: nhibernate fluent-nhibernate s#arp-architecture

由于遗留数据库,我需要使用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是域模型的一部分。

2 个答案:

答案 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应该是域模型中的映射类。