1+
2+
3+ using System ;
4+ using System . Collections . Generic ;
5+ namespace NHibernate . Test . NHSpecificTest . NH3079
6+ {
7+ public class PersonCpId
8+ {
9+ private Int32 ? idA ;
10+ public Int32 ? IdA
11+ {
12+ get { return idA ; }
13+ set { idA = value ; }
14+ }
15+
16+ private Int32 ? idB ;
17+ public Int32 ? IdB
18+ {
19+ get { return idB ; }
20+ set { idB = value ; }
21+ }
22+
23+ // override object.Equals
24+ public override bool Equals ( object obj )
25+ {
26+ if ( obj == null || GetType ( ) != obj . GetType ( ) )
27+ {
28+ return false ;
29+ }
30+ PersonCpId objCpId = ( PersonCpId ) obj ;
31+ return this . IdA == objCpId . IdA && this . IdB == this . IdB ;
32+ }
33+
34+ // override object.GetHashCode
35+ public override int GetHashCode ( )
36+ {
37+ return this . IdA . Value + this . IdB . Value ;
38+ }
39+ }
40+ public class Person
41+ {
42+ private PersonCpId cpId ;
43+ public virtual PersonCpId CpId
44+ {
45+ get { return cpId ; }
46+ set { cpId = value ; }
47+ }
48+
49+ private String name ;
50+ public virtual String Name
51+ {
52+ get { return name ; }
53+ set { name = value ; }
54+ }
55+
56+ private ICollection < Employment > employmentList ;
57+ public virtual ICollection < Employment > EmploymentList
58+ {
59+ get { return employmentList ; }
60+ set { employmentList = value ; }
61+ }
62+ }
63+
64+ public class EmployerCpId
65+ {
66+ private Int32 ? idA ;
67+ public virtual Int32 ? IdA
68+ {
69+ get { return idA ; }
70+ set { idA = value ; }
71+ }
72+
73+ private Int32 ? idB ;
74+ public virtual Int32 ? IdB
75+ {
76+ get { return idB ; }
77+ set { idB = value ; }
78+ }
79+
80+ // override object.Equals
81+ public override bool Equals ( object obj )
82+ {
83+ if ( obj == null || GetType ( ) != obj . GetType ( ) )
84+ {
85+ return false ;
86+ }
87+ EmployerCpId objCpId = ( EmployerCpId ) obj ;
88+ return this . IdA == objCpId . IdA && this . IdB == this . IdB ;
89+ }
90+
91+ // override object.GetHashCode
92+ public override int GetHashCode ( )
93+ {
94+ return this . IdA . Value + this . IdB . Value ;
95+ }
96+ }
97+
98+ public class Employer
99+ {
100+ private EmployerCpId cpId ;
101+ public virtual EmployerCpId CpId
102+ {
103+ get { return cpId ; }
104+ set { cpId = value ; }
105+ }
106+
107+ private String name ;
108+ public virtual String Name
109+ {
110+ get { return name ; }
111+ set { name = value ; }
112+ }
113+
114+ private ICollection < Employment > employmentList ;
115+ public virtual ICollection < Employment > EmploymentList
116+ {
117+ get { return employmentList ; }
118+ set { employmentList = value ; }
119+ }
120+ }
121+
122+ public class EmploymentCpId
123+ {
124+ private Int32 ? id ;
125+ public virtual Int32 ? Id
126+ {
127+ get { return id ; }
128+ set { id = value ; }
129+ }
130+
131+ private Person personObj ;
132+ public virtual Person PersonObj
133+ {
134+ get { return personObj ; }
135+ set { personObj = value ; }
136+ }
137+
138+ private Employer employerObj ;
139+ public virtual Employer EmployerObj
140+ {
141+ get { return employerObj ; }
142+ set { employerObj = value ; }
143+ }
144+
145+ // override object.Equals
146+ public override bool Equals ( object obj )
147+ {
148+ if ( obj == null || GetType ( ) != obj . GetType ( ) )
149+ {
150+ return false ;
151+ }
152+ EmploymentCpId objCpId = ( EmploymentCpId ) obj ;
153+ return this . Id == objCpId . Id && this . PersonObj . CpId == this . PersonObj . CpId && this . EmployerObj . CpId == this . EmployerObj . CpId ;
154+ }
155+
156+ // override object.GetHashCode
157+ public override int GetHashCode ( )
158+ {
159+ return this . Id . Value + this . PersonObj . CpId . GetHashCode ( ) + this . EmployerObj . CpId . GetHashCode ( ) ;
160+ }
161+ }
162+
163+ public class Employment
164+ {
165+ private EmploymentCpId cpId ;
166+ public virtual EmploymentCpId CpId
167+ {
168+ get { return cpId ; }
169+ set { cpId = value ; }
170+ }
171+
172+ private String name ;
173+ public virtual String Name
174+ {
175+ get { return name ; }
176+ set { name = value ; }
177+ }
178+ }
179+
180+ public class PersonNoComponent
181+ {
182+ private Int32 ? idA ;
183+ public virtual Int32 ? IdA
184+ {
185+ get { return idA ; }
186+ set { idA = value ; }
187+ }
188+
189+ private Int32 ? idB ;
190+ public virtual Int32 ? IdB
191+ {
192+ get { return idB ; }
193+ set { idB = value ; }
194+ }
195+
196+ private String name ;
197+ public virtual String Name
198+ {
199+ get { return name ; }
200+ set { name = value ; }
201+ }
202+
203+ // override object.Equals
204+ public override bool Equals ( object obj )
205+ {
206+ if ( obj == null || GetType ( ) != obj . GetType ( ) )
207+ {
208+ return false ;
209+ }
210+ PersonCpId objCpId = ( PersonCpId ) obj ;
211+ return this . IdA == objCpId . IdA && this . IdB == this . IdB ;
212+ }
213+
214+ // override object.GetHashCode
215+ public override int GetHashCode ( )
216+ {
217+ return this . IdA . Value + this . IdB . Value ;
218+ }
219+ }
220+ }
0 commit comments