Bonjour,
Je suis confronté à un problème en utilisant NHibernate(je précise, je suis débutant en C#)
J'execute en 1er :
fiamEnCours est un champ privé de ma classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.fiamEnCours = ReqFiam.Get(comboBoxSociete.SelectedItem as Societe, this.anneeMois.ToString("MMyyyy"));
Voici le Code de ReqFiam.Get() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2private Fiam fiamEnCours;
Voici la structure de la classe Fiam
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Et enfin mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } } }
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
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é.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"}
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,
Partager