2012-04-11 51 views
1
我在与合并下列对象到另一个会话问题

NHibernate的合并协会

实体和它的关联

域 - > *子域 - > *控制 - > *措施

域实体上的合并工作,但它的关联不合并。我怎样才能解决这个问题?

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(); 
     } 
    } 
} 

回答

0

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

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