2012-04-11 36 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實現所需的類型對象。

我還不確定這是否是正確的解決方案,但它現在解決了我的問題。