Click or drag to resize

ObjectGraphUtilsProduceAdjacencyListsTEntity Method

Produces adjancency lists for the entities in the complete graph reachable from the entity passed in. This routine figures out the graph to process by walking it, using a hashtable (recursed) to take note which nodes are already processed. When it finds an entity A and an entity B having a relation in the graph (have 'an edge'), and A is depending on B, we add B to the adjacency list of A, though we don't add A to the adjacency list of B. Additionally, it adds the type of B to the adjacency list of the type of A. This way we can determine the order of types.

Namespace:  SD.LLBLGen.Pro.ORMSupportClasses
Assembly:  SD.LLBLGen.Pro.ORMSupportClasses (in SD.LLBLGen.Pro.ORMSupportClasses.dll) Version: 5.5.0.0 (5.5.18.1019)
Syntax
public void ProduceAdjacencyLists<TEntity>(
	TEntity entityToExamine,
	Dictionary<Guid, Dictionary<Guid, TEntity>> adjacencyLists,
	Dictionary<Guid, TEntity> recursed,
	MultiValueDictionary<Type, Type> typeAdjacencyLists
)
where TEntity : class, IEntityCore

Parameters

entityToExamine
Type: TEntity
Entity to examine
adjacencyLists
Type: System.Collections.GenericDictionaryGuid, DictionaryGuid, TEntity
The dictionary with per seen entity (objectid, key) the adjancency list (Hashtable of entities, key is objectid, value is entity)
recursed
Type: System.Collections.GenericDictionaryGuid, TEntity
The hashtable with objectids of the entities already processed to build the adjacency lists.
typeAdjacencyLists
Type: SD.LLBLGen.Pro.ORMSupportClassesMultiValueDictionaryType, Type
The dictionary with per type (key) the list of types it depends on

Type Parameters

TEntity
See Also