2012-04-11 5 views
1

Ich habe Probleme mit verschmelzenden folgendes Objekt in einer anderen Sitzung:NHibernate fusionieren Verbände

Entity und es ist Verbände

Domain -> * Subdomains -> * Kontrollen -> * Maßnahmen

Die Zusammenführung für die Domänenentität funktioniert, die Zuordnungen werden jedoch nicht zusammengeführt. Wie kann ich das beheben?

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

Mappings

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

Antwort

0

ich meine eigene Datacontext und kartiert die Eigenschaften der damit verbundenen Spalten. Meine ModelTranslator-Klasse übersetzt das Domänenobjekt in das Typobjekt, das ich für meine eigene Datenkontextimplementierung benötige.

Ich bin mir immer noch nicht sicher, ob dies die richtige Lösung ist, aber es hat mein Problem vorerst gelöst.