Click or drag to resize
RelationCollection Class
Class which is used to stack relation objects between several entities to build a complete join path
Inheritance Hierarchy
SystemObject
  SD.LLBLGen.Pro.ORMSupportClassesRelationCollection

Namespace:  SD.LLBLGen.Pro.ORMSupportClasses
Assembly:  SD.LLBLGen.Pro.ORMSupportClasses (in SD.LLBLGen.Pro.ORMSupportClasses.dll) Version: 5.3.0.0 (5.3.0)
Syntax
[SerializableAttribute]
public class RelationCollection : IList, 
	ICollection, IEnumerable, IRelationCollection, IXmlSerializable, IDeserializationCallback

The RelationCollection type exposes the following members.

Constructors
  NameDescription
Public methodRelationCollection
CTor
Public methodRelationCollection(IDynamicRelation)
Initializes a new instance of the RelationCollection class.
Public methodRelationCollection(IEntityRelation)
Initializes a new instance of the RelationCollection class.
Public methodRelationCollection(IEntityRelation, JoinHint)
Initializes a new instance of the RelationCollection class.
Public methodRelationCollection(IEntityRelation, String, JoinHint)
Initializes a new instance of the RelationCollection class.
Top
Properties
  NameDescription
Public propertyCapacity
Returns the capacity of the collection
Public propertyCount
returns the number of relations in this collection
Public propertyCustomFilterParameters
Gets Custom Filter Parameters, created in ToQueryText and which are used in custom filters.
Public propertyDatabaseSpecificCreator
Object which will be used to create valid parameter objects, field names, including prefix/postfix characters, and conversion routines, and field names, including prefix/postfix characters. Uses the strategy pattern so the generic code can work with more than one target database.
Public propertyFromClauseDirectives
Gets from clause directives which are to be set on FROM clause elements in the resulting SQL query.
Public propertyItem
Indexer in the collection.
Public propertyObeyWeakRelations
Gets / sets ObeyWeakRelations, which is the flag to signal the collection what kind of join statements to generate in the ToQueryText statement, which is called by the DQE. Weak relationships are relationships which are optional, for example a customer with no orders is possible, because the relationship between customer and order is based on a field in order. When this property is set to true (default: false), weak relationships will result in LEFT JOIN statements. When set to false (which is the default), INNER JOIN statements are used.
Public propertySelectListAlias
Optional alias for select list fields. Used in entity fetches where the entity type to fetch has to be aliased because the source of the data is a derived table or requires aliasing because the relations used require that. If specified, all predicates referring to the entity type to fetch have to use the same alias.
Public propertyWillPotentiallyCauseDuplicateRows
Gets a value indicating whether the contents of this relation collection will result in joins which result in duplicate data. This is the case if there's at least one 1:n or m:n relation.
Top
Methods
  NameDescription
Public methodAdd(IDynamicRelation)
Adds the passed in IDynamicRelation instance to the list
Public methodAdd(IEntityRelation)
Adds the passed in IEntityRelation instance to the list.
Public methodAdd(IRelation)
Adds the passed in relation to this collection
Public methodAdd(IEntityRelation, JoinHint)
Adds the passed in IEntityRelation instance to the list.
Public methodAdd(IEntityRelation, String)
Adds the passed in IEntityRelation instance to the list, under the alias specified for the end entity. The start entity gets no alias. The weakness of the relation is considered based on the ObeyWeakRelations setting.
Public methodAdd(IEntityRelation, String, JoinHint)
Adds the passed in IEntityRelation instance to the list, under the alias specified for the end entity and will consider the relation's weakness based on the hint value. The start entity gets no alias.
Public methodAdd(IEntityRelation, String, String, JoinHint)
Adds the passed in IEntityRelation instance to the list, under the aliases specified and will consider the relation's weakness based on the hint value. The start entity gets no alias.
Public methodAddRange
Adds the range of IRelation objects stored in c to this collection.
Public methodClear
Removes all items from the IList.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from 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 methodGetAllDerivedTables
Gets all derived tables in the relations inside this relation collection.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetUsedEntityTypeNamesAndAliases
Gets per alias specified in a relation all entity names covered by that alias. This means that if an entity in a relation is based on multiple entities (through inheritance) it will return all entity names the entity is based on, from the actual entity to the root of the hierarchy path and every entity name in between.
Public methodInsert
Adds the passed in IRelation instance to the list at position index.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPreprocessRelations
Preprocesses the relations in this relationcollection The start/end entity can have an inheritance info object with them, causing these relations to be inserted at that spot, where the additional relations for the start entity are added BEFORE the actual relation and the relations for the end entity AFTER the actual relation.
Public methodRemove
Removes the passed in IRelation instance. Only the first instance will be removed.
Public methodToQueryText
Converts the set of relations to a set of nested JOIN query elements using ANSI join syntaxis. Oracle 8i doesn't support ANSI join syntaxis and therefore the OracleDQE has its own join code. It uses a database specific creator object for database specific syntaxis, like the format of the tables / views and fields.
Public methodToQueryTextNonAnsi
Converts the set of relations to a set of nested JOIN query elements using ANSI join syntaxis. Oracle 8i doesn't support ANSI join syntaxis and therefore the OracleDQE has its own join code. It uses a database specific creator object for database specific syntaxis, like the format of the tables / views and fields.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Extension Methods
  NameDescription
Public Extension MethodCloneWithoutFirst
Clones the relationcollection without the first relation.
(Defined by ORMClassExtensions.)
Public Extension MethodIsEmpty
Determines whether the specified relation collection is empty. A null passed in is also considered empty.
(Defined by ORMClassExtensions.)
Public Extension MethodLast
Gets the last relation in the passed in relations collection or null if it's empty
(Defined by ORMClassExtensions.)
Public Extension MethodRemoveLast
Removes the last relation from the passed in relationcollection. Assumes last entry is an entity relation
(Defined by ORMClassExtensions.)
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implementationPrivate methodIListAdd
Adds an item to the IList.
Explicit interface implementationPrivate methodIListContains
Determines whether the IList contains a specific value.
Explicit interface implementationPrivate methodICollectionCopyTo
Copies the elements of the ICollection to an Array, starting at a particular Array index.
Explicit interface implementationPrivate methodIEnumerableGetEnumerator
Returns an enumerator that iterates through a collection.
Explicit interface implementationPrivate methodIXmlSerializableGetSchema
This method is reserved and should not be used. When implementing the IXmlSerializable interface, you should return null (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the XmlSchemaProviderAttribute to the class.
Explicit interface implementationPrivate methodIListIndexOf
Determines the index of a specific item in the IList.
Explicit interface implementationPrivate methodIListInsert
Inserts an item to the IList at the specified index.
Explicit interface implementationPrivate propertyIListIsFixedSize
Gets a value indicating whether the IList has a fixed size.
Explicit interface implementationPrivate propertyIListIsReadOnly
Gets a value indicating whether the IList is read-only.
Explicit interface implementationPrivate propertyICollectionIsSynchronized
Gets a value indicating whether access to the ICollection is synchronized (thread safe).
Explicit interface implementationPrivate propertyIListItem
Gets or sets the element at the specified index.
Explicit interface implementationPrivate methodIDeserializationCallbackOnDeserialization
Runs when the entire object graph has been deserialized.
Explicit interface implementationPrivate methodIXmlSerializableReadXml
Generates an object from its XML representation.
Explicit interface implementationPrivate methodIListRemove
Removes the first occurrence of a specific object from the IList.
Explicit interface implementationPrivate methodIListRemoveAt
Removes the IList item at the specified index.
Explicit interface implementationPrivate propertyICollectionSyncRoot
Gets an object that can be used to synchronize access to the ICollection.
Explicit interface implementationPrivate methodIXmlSerializableWriteXml
Converts an object into its XML representation.
Explicit interface implementationPrivate methodIRelationCollectionAddFromClauseDirectives
Adds the from clause directives specified to this collection
Explicit interface implementationPrivate methodIRelationCollectionReadXml
Deserializes the object data on the xml reader into this instance
Explicit interface implementationPrivate methodIRelationCollectionToggleArtificialAliasingForTargetPerEntityRelations
Enables / disables the artificial aliasing for target per entity relations. This method is used to enable the artificial aliasing of entities which are in a hierarchy of TargetPerEntity and which are in the relations of this collection. This is switched on for dyn/typedlist fetches to be sure dyn/typedlists with fields from multiple entities in the same inheritance hierarchy will be retrievable properly, as they need aliasing under the hood but if the developer didn't alias the entities, the query will fail because the supertype(s) aren't joined multiple types.
Explicit interface implementationPrivate methodIRelationCollectionWriteXml
Serializes the object as xml to the writer specified.
Top
See Also