@@ -55,6 +55,7 @@ public TraversalHelper(
5555 public RootNode < TEntity > CreateRootNode < TEntity > ( IEnumerable < TEntity > rootEntities ) where TEntity : class , IIdentifiable
5656 {
5757 _processedEntities = new Dictionary < DependentType , HashSet < IIdentifiable > > ( ) ;
58+ RegisterRelationshipProxies ( typeof ( TEntity ) ) ;
5859 var uniqueEntities = ProcessEntities ( rootEntities ) ;
5960 var relationshipsToNextLayer = GetRelationships ( typeof ( TEntity ) ) ;
6061 return new RootNode < TEntity > ( uniqueEntities , relationshipsToNextLayer ) ;
@@ -94,7 +95,7 @@ public EntityChildLayer CreateNextLayer(IEnumerable<IEntityNode> nodes)
9495 return CreateRelationsipGroupInstance ( nextNodeType , proxy , grouped . Value , principals [ proxy ] ) ;
9596 } ) . ToList ( ) ;
9697
97-
98+ RegisterRelationshipProxies ( nextNodeType ) ;
9899 return CreateNodeInstance ( nextNodeType , GetRelationships ( nextNodeType ) , relationshipsToPreviousLayer ) ;
99100 } ) . ToList ( ) ;
100101
@@ -118,6 +119,8 @@ Dictionary<DependentType, List<KeyValuePair<RelationshipProxy, List<IIdentifiabl
118119 var principalsGrouped = new Dictionary < RelationshipProxy , List < IIdentifiable > > ( ) ;
119120 var dependentsGrouped = new Dictionary < RelationshipProxy , List < IIdentifiable > > ( ) ;
120121
122+ principalNodes . ForEach ( n => RegisterRelationshipProxies ( n . EntityType ) ) ;
123+
121124 foreach ( var node in principalNodes )
122125 {
123126 var principalEntities = node . UniqueEntities ;
@@ -181,7 +184,11 @@ HashSet<TEntity> ProcessEntities<TEntity>(IEnumerable<TEntity> incomingEntities)
181184 Type type = typeof ( TEntity ) ;
182185 var newEntities = UniqueInTree ( incomingEntities , type ) ;
183186 RegisterProcessedEntities ( newEntities , type ) ;
187+ return newEntities ;
188+ }
184189
190+ void RegisterRelationshipProxies ( DependentType type )
191+ {
185192 var contextEntity = _graph . GetContextEntity ( type ) ;
186193 foreach ( RelationshipAttribute attr in contextEntity . Relationships )
187194 {
@@ -194,7 +201,6 @@ HashSet<TEntity> ProcessEntities<TEntity>(IEnumerable<TEntity> incomingEntities)
194201 RelationshipProxies [ attr ] = proxy ;
195202 }
196203 }
197- return newEntities ;
198204 }
199205
200206
0 commit comments