2010-07-16 10 views
0

J'ai une classe de cas qui expose un objet Personne comme suit:NHibernate mise à jour en cascade/insérer

public class Case 
{ 
    public virtual Person Deceased {get;set;} 
} 

J'ai une classe PersonalAsset qui expose aussi une personne:

public class PersonalAsset 
{ 
    public virtual Person Owner {get;set;} 
} 

En supposant que j'écris la code suivant au sein d'un ISession:

Case case = new Case(); 
Person deceased = new Person(); 
case.Deceased = deceased; 
PersonalAsset asset = new PersonalAsset(); 
asset.Owner = deceased; 
session.SaveOrUpdate(case); 

Y at-il une configuration de mappage qui permettra d'enregistrer le PersonalAss et automatiquement? Ou dois-je appeler session.Save (asset) aussi?

Merci

David

Répondre

1

Sans référence entre eux, vous devrez sauver les choses manuellement. Du point de vue de la modélisation, est-ce qu'il vous manque peut-être une racine agrégée qui possède ces deux choses?

+0

Je pense que votre réponse peut clarifier le problème. Je ne sais pas très bien quel est l'agrégat - c'est soit le cas lui-même, soit la personne décédée. – David

+0

Je serais fortement suspect qu'une personne devrait contenir une collection d'actifs. –

+0

est vrai. Vous agrégez la racine est Case et une personne a plusieurs actifs. –

Questions connexes