Click or drag to resize
IRelationCollection Interface
Interface for the RelationCollection class which is used to stack relation objects between several entities to build a complete join path Generic NB: ToQueryText() has been removed, query text producing logic is moved to the DQE's, since Oracle 8i doesn't support ANSI joins.

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
public interface IRelationCollection : IEnumerable

The IRelationCollection type exposes the following members.

Properties
  NameDescription
Public propertyCount
Returns the amount of relations in this object
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. Returned value can be IEntityRelation or IDynamicRelation
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 methodAddFromClauseDirectives
Adds the from clause directives specified to this collection
Public methodAddRange
Adds the range of IRelation objects stored in c to this collection.
Public methodGetAllDerivedTables
Gets all derived tables in the relations inside this relation collection.
Public methodGetEnumerator
Returns an enumerator that iterates through a collection.
(Inherited from IEnumerable.)
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.
Public methodReadXml
Deserializes the object data on the xml reader into this instance
Public methodRemove
Removes the passed in IRelation instance. Only the first instance will be removed.
Public methodToggleArtificialAliasingForTargetPerEntityRelations
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.
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 methodWriteXml
Serializes the object as xml to the writer specified.
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
See Also