@@ -198,23 +198,11 @@ private static bool TraverseMembers(
198
198
while ( memberPaths . Count > 0 && currentType != null )
199
199
{
200
200
var convertType = member . ConvertType ;
201
- // Concatenate the component property path in order to be able to use EntityMetamodel.GetPropertyType to retrieve the type.
202
- // As GetPropertyType supports only components, do not concatenate when dealing with collection composite elements or elements.
203
- if ( ! currentType . IsAnyType && currentType is IAbstractComponentType )
204
- {
205
- var nextMember = memberPaths . Pop ( ) ;
206
- member = currentEntityPersister == null // Collection with composite element or element
207
- ? nextMember
208
- : new MemberMetadata ( $ "{ member . Path } .{ nextMember . Path } ", nextMember . ConvertType , nextMember . HasIndexer ) ;
209
- }
210
- else
211
- {
212
- member = memberPaths . Pop ( ) ;
213
- }
214
201
215
202
switch ( currentType )
216
203
{
217
204
case IAssociationType associationType :
205
+ member = memberPaths . Pop ( ) ;
218
206
ProcessAssociationType (
219
207
associationType ,
220
208
sessionFactory ,
@@ -225,10 +213,24 @@ private static bool TraverseMembers(
225
213
out currentComponentType ) ;
226
214
break ;
227
215
case IAbstractComponentType componentType :
216
+ // Concatenate the component property path in order to be able to use EntityMetamodel.GetPropertyType to retrieve the type.
217
+ // As GetPropertyType supports only components, do not concatenate when dealing with collection composite elements or elements.
218
+ if ( ! currentType . IsAnyType )
219
+ {
220
+ var nextMember = memberPaths . Pop ( ) ;
221
+ member = currentEntityPersister == null // Collection with composite element or element
222
+ ? nextMember
223
+ : new MemberMetadata ( $ "{ member . Path } .{ nextMember . Path } ", nextMember . ConvertType , nextMember . HasIndexer ) ;
224
+ }
225
+ else
226
+ {
227
+ member = memberPaths . Pop ( ) ;
228
+ }
228
229
currentComponentType = componentType ;
229
230
ProcessComponentType ( componentType , currentEntityPersister , member , out currentType ) ;
230
231
break ;
231
232
default :
233
+ member = memberPaths . Pop ( ) ;
232
234
// q.Prop.NotMappedProp
233
235
currentType = null ;
234
236
currentEntityPersister = null ;
0 commit comments