NHibernate合并协会

NHibernate合并协会,nhibernate,fluent-nhibernate,merge,Nhibernate,Fluent Nhibernate,Merge,我在将以下对象合并到另一个会话时遇到问题: 实体及其关联 using System; using System.Collections.Generic; using System.Linq; using System.Text; using FluentNHibernate.Mapping; using ISMSControl.Domain; namespace ISMSControl.Infrastructure.Mappings { public class NDomainMapp

我在将以下对象合并到另一个会话时遇到问题:

实体及其关联

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using ISMSControl.Domain;

namespace ISMSControl.Infrastructure.Mappings
{
    public class NDomainMapping : ClassMap<NDomain>
    {
        public NDomainMapping()
        {
            Table("domeinen");
            Id(m => m.Id, "id").UnsavedValue(-1);
            Map(m => m.Code, "code_1");
            Map(m => m.Description, "omschrijving");
            Map(m => m.Explanation, "toelichting");
            Map(m => m.DateCreated, "createdat");
            Map(m => m.CreatedBy, "createdby");
            Map(m => m.DateModified, "modifiedat");
            Map(m => m.ModifiedBy, "modifiedby");

            HasMany(m => m.SubDomains)
                .KeyColumn("domein")
                .Inverse()
                .Cascade.All();
        }
    }
}
域->*子域->*控件->*度量

域实体上的合并有效,但其关联未合并。我怎样才能解决这个问题

using (var session = SessionFactoryContainer.Current.Get(sessionFactoryName).OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    try
                    {
                        session.Merge(domain);
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
映射

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using ISMSControl.Domain;

namespace ISMSControl.Infrastructure.Mappings
{
    public class NDomainMapping : ClassMap<NDomain>
    {
        public NDomainMapping()
        {
            Table("domeinen");
            Id(m => m.Id, "id").UnsavedValue(-1);
            Map(m => m.Code, "code_1");
            Map(m => m.Description, "omschrijving");
            Map(m => m.Explanation, "toelichting");
            Map(m => m.DateCreated, "createdat");
            Map(m => m.CreatedBy, "createdby");
            Map(m => m.DateModified, "modifiedat");
            Map(m => m.ModifiedBy, "modifiedby");

            HasMany(m => m.SubDomains)
                .KeyColumn("domein")
                .Inverse()
                .Cascade.All();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用FluentNHibernate.Mapping;
使用ISMSControl.Domain;
命名空间ISMSControl.Infrastructure.Mappings
{
公共类映射:类映射
{
公共映射()
{
表(“多梅宁”);
Id(m=>m.Id,“Id”).UnsavedValue(-1);
Map(m=>m.Code,“Code_1”);
地图(m=>m.描述,“omschrijving”);
地图(m=>m.解释,“toelichting”);
Map(m=>m.DateCreated,“createdat”);
Map(m=>m.CreatedBy,“CreatedBy”);
Map(m=>m.DateModified,“modifiedat”);
Map(m=>m.ModifiedBy,“ModifiedBy”);
HasMany(m=>m.子域)
.KeyColumn(“domen”)
.Inverse()
.Cascade.All();
}
}
}

我创建了自己的datacontext并将属性映射到相关列。我的ModelTranslator类将域对象转换为我自己的datacontext实现所需的类型对象

我仍然不确定这是否是正确的解决方案,但现在它解决了我的问题