2010-11-17 2 views
0

Je crée un nouvel objet en ajoutant à une collection HasMany sur un autre objet dans NHibernate.NHibernate 1er niveau Cache lorsque l'élément est ajouté à une collection HasMany

Lorsque je vais rechercher directement cet objet dans la même session, il est nul. Comment puis-je stocker un objet enfant dans une collection HasMany dans le cache de 1er niveau. Le problème que j'ai est que j'ai besoin d'obtenir l'objet et de travailler dessus avant que tout soit commis.

HasMany(x => x.BehavioralEvents) 
    .AsBag() 
    .Cascade.SaveUpdate() 
    .Inverse() 
    .KeyColumn("StudentCaseId") 
    .LazyLoad(); 

BehavioralEvents est un IList et je dois requête pour directement dans la même session:

session.Get<BehavioralEvent>(id); 

Répondre

1

Vous devez enregistrer le nouvel objet pour le rendre persistant au lieu de compter sur les paramètres en cascade de l'objet parent. La cascade ne se produira pas avant que la session ne soit vidée. Je suppose que vous attribuez l'ID vous-même et n'utilisez pas un identifiant généré.

+0

Oui, j'attribue moi-même l'ID. Il suffit donc de passer un appel à session.save puis d'ajouter mon objet à la collection? –

+0

A travaillé parfaitement, merci! –

Questions connexes