Click or drag to resize

TypedListRelationshipEdge Class

Specific relationship edge which represents a normal relationship edge between two aliased entities in a typedlist. It's a directed edge, between two EntityAlias elements over an existing NormalRelationship instance.
Inheritance Hierarchy
SystemObject
  SD.Tools.Algorithmia.GraphsEdgeEntityAlias
    SD.Tools.Algorithmia.GraphsDirectedEdgeEntityAlias
      SD.LLBLGen.Pro.ApplicationCore.EntityModel.TypedListsTypedListRelationshipEdge

Namespace:  SD.LLBLGen.Pro.ApplicationCore.EntityModel.TypedLists
Assembly:  SD.LLBLGen.Pro.ApplicationCore (in SD.LLBLGen.Pro.ApplicationCore.dll) Version: 5.10.0.0 (5.10.0)
Syntax
public class TypedListRelationshipEdge : DirectedEdge<EntityAlias>, 
	ISerializableToXml, IRelationshipEdge, INotifyAsChanged, INotifyAsRemoved, INotifyPropertyChanged

The TypedListRelationshipEdge type exposes the following members.

Constructors
  NameDescription
Public methodTypedListRelationshipEdge
Initializes a new instance of the TypedListRelationshipEdge class.
Top
Properties
  NameDescription
Public propertyEndVertex
Gets the end vertex of the edge.
(Inherited from EdgeTVertex.)
Public propertyFullDescription
Gets the full description.
Public propertyHintForJoins
Gets or sets the hint for joins. This hint is defined as the join hint to join StartVertex to EndVertex, in the form: EndVertex JoinHint Join StartVertex.
Public propertyIsDirected
Gets a value indicating whether this edge is directed. If true, the edge is directed from startVertex to endVertex and is seen as an edge only between startVertex and endVertex, not between endVertex and startVertex. If false, this edge isn't considered a directed edge and is seen as an edge between startVertex and endVertex and also between endVertex and startVertex.
(Inherited from EdgeTVertex.)
Public propertyRepresentedRelationship
Gets the represented relationship.
Public propertyRepresentedRelationshipAsString
Gets the represented relationship as string.
Public propertyStartVertex
Gets the start vertex of the edge.
(Inherited from EdgeTVertex.)
Public propertyStartVertexIsRelationshipStartVertex
Gets a value indicating whether the start vertex of this relationship is the start vertex of the represented relationship (true) or the end vertex of the represented relationship (false).
Top
Methods
  NameDescription
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Overrides ObjectEquals(Object).)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Overrides ObjectGetHashCode.)
Public methodGetRelationshipFieldsFromEndEntityAlias
Gets the relationship fields from start entity alias. This can be the PK fields if the start entity alias is the pk side, otherwise the fk fields.
Public methodGetRelationshipFieldsFromStartEntityAlias
Gets the relationship fields from start entity alias. This can be the PK fields if the start entity alias is the pk side, otherwise the fk fields.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodSerializeToWriter
Serializes the data in this class to the serializer passed in
Public methodToString
Returns a String that represents the current Object.
(Inherited from DirectedEdgeTVertex.)
Top
Events
  NameDescription
Public eventHasBeenChanged
Raised when the implementing element has been changed
Public eventHasBeenRemoved
Raised when the implementing element has been removed from its container
Public eventPropertyChanged
Occurs when a property value changes.
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implementationPrivate propertyIRelationshipEdgeEndNavigatorIsHidden
Returns true if the end navigator is empty/hidden
Explicit interface implementationPrivate propertyIRelationshipEdgeFullDescription
Gets the full description.
Explicit interface implementationPrivate propertyIRelationshipEdgeLeftNavigator
Gets the left navigator which is the navigator of the left side of the relationship.
Explicit interface implementationPrivate propertyIRelationshipEdgeLeftQuantifierString
Gets the left quantifier string for the relationship, e.g. if the relationshiptype is 1:n, the left quantifier is 1, the right quantifier is '*'
Explicit interface implementationPrivate propertyIRelationshipEdgeLeftVertexFullName
Gets the Full name of the left vertex of the relationship
Explicit interface implementationPrivate propertyIRelationshipEdgeModelOnly
Gets or sets a value indicating whether this relationship is a 'model only' (true) relationship or a full relationship (false). Full relationships require a foreign key constraint in the relational model data.
Explicit interface implementationPrivate propertyIRelationshipEdgeRelationshipType
Gets the type of the relationship.
Explicit interface implementationPrivate propertyIRelationshipEdgeRightNavigator
Gets the right navigator, which is the navigator of the right side of the relationship.
Explicit interface implementationPrivate propertyIRelationshipEdgeRightQuantifierString
Gets the right quantifier string for the relationship, e.g. if the relationshiptype is 1:n, the left quantifier is 1, the right quantifier is '*'
Explicit interface implementationPrivate propertyIRelationshipEdgeRightVertexFullName
Gets the Full name of the right vertex of the relationship
Explicit interface implementationPrivate propertyIRelationshipEdgeStartNavigatorIsHidden
Returns true if the start navigator is empty/hidden
Top
Remarks
The StartVertex is connected to the EndVertex over this TypedListRelatioshipEdge instance using the normalrelationshipedge represented by the instance of this class. This means that the StartVertex is the entityalias joined to the set in which EndVertex is already part of. Example: NormalRelationship: Order m:1 Customer. LLBLGen Pro stores the same relationship for both sides so both Customer and Order have the order m:1 customer relationship. In the typedlist, Order is already present, and Customer is added. This means that a new TypedListRelationshipEdge is added: Customer -> Order as Order is already in the set and Customer is joined with that set. If 'Right' is specified as HintForJoins, it means Order Right Join Customer, as that's what the TypedListRelationshipEdge represents. For the underlying relationship, it depends on the StartVertexIsRelationshipStartVertex if the HintForJoins of the TypedListRelationshipEdge is directly usable on the underlying relationship: if the underlying relationship is Customer 1:n Order, and the TypedListRelationshipEdge is Customer -> Order with a HintForJoins 'Right', it means Customer Left Join Order for the underlying relationship. In short: the TypedListRelationshipEdge.StartVertex is the right side of the join statement, the TypedListRelationshipEdge.EndVertex is the left side of the join statement, so EndVertex HintForJoins JOIN StartVertex. In the 'Add customer to typedlist with Order' example, StartVertex is 'Customer' (as it's the alias added to the typedlist) and EndVertex is 'Order', as it is the alias already in the TypedList, which results in Order Right Join Customer, if the HintForJoins is set to 'Right'. Code generation engines have to take this into account when consuming a typedlist relationship edge.
See Also