[NHibernate] Problème Récupération Jointure
Bonjour,
Je suis confronté à un problème en utilisant NHibernate(je précise, je suis débutant en C#)
J'execute en 1er :
Code:
1 2
|
this.fiamEnCours = ReqFiam.Get(comboBoxSociete.SelectedItem as Societe, this.anneeMois.ToString("MMyyyy")); |
fiamEnCours est un champ privé de ma classe
Code:
1 2
|
private Fiam fiamEnCours; |
Voici le Code de ReqFiam.Get() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public static Fiam Get(Societe societe, string mois)
{
Fiam f;
using (ISession session = Program.SessionFactory.OpenSession())
{
ICriteria critere = session.CreateCriteria<Fiam>();
critere.Add(Restrictions.Eq("Mois", mois));
critere.Add(Restrictions.Eq("Societe", societe));
f = critere.UniqueResult<Fiam>();
return f;
}
} |
Voici la structure de la classe Fiam
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| public partial class Fiam {
private int _IdFiam;
private string _Mois;
private Societe _Societe;
private Iesi.Collections.ISet _FiamDetails;
#region Extensibility Method Definitions
partial void OnCreated();
#endregion
public Fiam()
{
this._FiamDetails = new Iesi.Collections.HashedSet();
OnCreated();
}
/// <summary>
/// There are no comments for IdFiam in the schema.
/// </summary>
public virtual int IdFiam
{
get
{
return this._IdFiam;
}
set
{
this._IdFiam = value;
}
}
/// <summary>
/// There are no comments for Mois in the schema.
/// </summary>
public virtual string Mois
{
get
{
return this._Mois;
}
set
{
this._Mois = value;
}
}
/// <summary>
/// There are no comments for Societe in the schema.
/// </summary>
public virtual Societe Societe
{
get
{
return this._Societe;
}
set
{
this._Societe = value;
}
}
/// <summary>
/// There are no comments for FiamDetails in the schema.
/// </summary>
public virtual Iesi.Collections.ISet FiamDetails
{
get
{
return this._FiamDetails;
}
set
{
this._FiamDetails = value;
}
}
} |
Et enfin mon problème :
Lorsque je rentre en débogage,
Un point d'arrêt sur return f dans ReqFiam.Get
J'ai bien ma collection f.FiamDetails qui contient des datas.
Par contre dès que je sort de ReqFiam.Get,
this.fiamEnCours.FiamDetails ne contient plus de données
Par ailleurs, voici ce que je vois noté dans this.FiamEncours.FiamDetails
Citation:
base {NHibernate.HibernateException} = {"Initializing[FiamCollaborateurs.Entites.Fiam#5]-failed to lazily initialize a collection of role: FiamCollaborateurs.Entites.Fiam.FiamDetails, no session or session was closed"}
Doit je comprendre que comme ma session Hibernate a été fermé dans ReqFiam.Get, je peux plus conserver ma collection (qui viens d'une jointure de table) ? Les autres data (hors jointure) sont bien conservé.
Pourriez-vous m'éclairer sur ce sujet, et comment faire en sorte que mon
this.fiamEnCours soit toujours égale à mon f retourné du Get()
Merci d'avance,