Skip to main content

NavigationPair

Namespace: Meshmakers.Octo.Runtime.Contracts.Repositories

Pair of rt association roles id and direction.

public record NavigationPair : FieldFilterCriteria, IEquatable<FieldFilterCriteria>, IEquatable<NavigationPair>

Inheritance Object → FieldFilterCriteria → NavigationPair
Implements IEquatable<FieldFilterCriteria>, IEquatable<NavigationPair>

Properties​

InnerNavigationPairs​

Gets the navigation pairs used to further traverse the object graph.

public List<NavigationPair> InnerNavigationPairs { get; }

Property Value​

List<NavigationPair>

CkRoleId​

Gets the association role id.

public RtCkId<CkAssociationRoleId> CkRoleId { get; }

Property Value​

RtCkId<CkAssociationRoleId>

Direction​

Gets the direction of the association.

public GraphDirections Direction { get; }

Property Value​

GraphDirections

TargetCkTypeId​

Gets the target construction kit type id.

public RtCkId<CkTypeId> TargetCkTypeId { get; }

Property Value​

RtCkId<CkTypeId>

PathTerms​

Gets the path terms to the navigation pair.

public IEnumerable<PathTerm> PathTerms { get; }

Property Value​

IEnumerable<PathTerm>

SubPathTerms​

Gets the sub path terms of the navigation pair. This property lists all sub paths of the navigation pair. The sub path terms are used to

public IEnumerable<IEnumerable<PathTerm>> SubPathTerms { get; private set; }

Property Value​

IEnumerable<IEnumerable<PathTerm>>

AssociationCountFilter​

Gets the association count filter for N:M association meta queries (totalCount/exists). When set, the navigation pair is used for counting associations rather than resolving target entities.

public AssociationCountFilter AssociationCountFilter { get; set; }

Property Value​

AssociationCountFilter

EntitySelector​

Gets the entity selector pinning the navigation target entity for value navigation across N-multiplicity associations (path syntax nav.type[key=value]->attr). When set, the MongoDB lookup narrows the loaded target entities to the selected one.

public NavigationEntitySelector EntitySelector { get; set; }

Property Value​

NavigationEntitySelector

Operator​

Gets the logical operator for combining field filters

public LogicalOperators Operator { get; }

Property Value​

LogicalOperators

FieldFilters​

Represents field filters for specific attributes with different comparison operators.

public ICollection<FieldFilter> FieldFilters { get; }

Property Value​

ICollection<FieldFilter>

NestedFilters​

Gets the list of nested filters for complex logical operations

public List<FieldFilterCriteria> NestedFilters { get; }

Property Value​

List<FieldFilterCriteria>

Constructors​

Creates a new NavigationPair from the given ckRoleId, direction, and targetCkTypeId.

public NavigationPair(IEnumerable<PathTerm> pathTerms, IEnumerable<IEnumerable<PathTerm>> subPathTerms, RtCkId<CkAssociationRoleId> ckRoleId, GraphDirections direction, RtCkId<CkTypeId> targetCkTypeId)

Parameters​

pathTerms IEnumerable<PathTerm>
Path terms to the navigation pair

subPathTerms IEnumerable<IEnumerable<PathTerm>>
Sub path terms to the navigation pair

ckRoleId RtCkId<CkAssociationRoleId>
Association role id

direction GraphDirections
Direction of the association

targetCkTypeId RtCkId<CkTypeId>
Target construction kit type id

Creates a new NavigationPair from the given ckRoleId, direction, and targetCkTypeId.

public NavigationPair(IEnumerable<PathTerm> pathTerms, IEnumerable<IEnumerable<PathTerm>> subPathTerms, RtCkId<CkAssociationRoleId> ckRoleId, GraphDirections direction, RtCkId<CkTypeId> targetCkTypeId, IEnumerable<NavigationPair> innerNavigationPairs)

Parameters​

pathTerms IEnumerable<PathTerm>
Path terms to the navigation pair

subPathTerms IEnumerable<IEnumerable<PathTerm>>
Sub path terms to the navigation pair

ckRoleId RtCkId<CkAssociationRoleId>
Association role id

direction GraphDirections
Direction of the association

targetCkTypeId RtCkId<CkTypeId>
Target construction kit type id

innerNavigationPairs IEnumerable<NavigationPair>
Navigation pairs used to further traverse the object graph

Methods​

Merge(NavigationPair)​

Merges the given other navigation pair into this one by adding the inner navigation pairs of the other navigation pair to this one.

public void Merge(NavigationPair other)

Parameters​

other NavigationPair
The other navigation pair to merge