Class DynamicExtenderBase
Inheritance
Implements
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
public abstract class DynamicExtenderBase : TableExtenderBase<TableInfo>, IArchiveProviderQueryMapping, IArchiveDynamicExtender, IArchiveExtender, IArchiveProviderDoesExtend, IArchiveProviderHasColumns, IArchiveProviderExtensible, IArchiveProviderDynamicExtend
Constructors
DynamicExtenderBase()
Construct a dynamic extender base, with table name based on our name-from-attribute
Declaration
protected DynamicExtenderBase()
DynamicExtenderBase(string)
Construct a dynamic extender base, with explicit table name
Declaration
protected DynamicExtenderBase(string tableToHandle)
Parameters
Type | Name | Description |
---|---|---|
string | tableToHandle |
Properties
JoinFieldName
Declaration
public string JoinFieldName { get; }
Property Value
Type | Description |
---|---|
string |
JoinTableName
Declaration
public string JoinTableName { get; }
Property Value
Type | Description |
---|---|
string |
JoinType
Declaration
public ArchiveJoinType JoinType { get; }
Property Value
Type | Description |
---|---|
ArchiveJoinType |
MainTableName
The name of the table that this node is the handler for
Declaration
public override string MainTableName { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
TableToExtend
Return the table to extend, as defined by THIS extender class.
Declaration
public override TableInfo TableToExtend { get; }
Property Value
Type | Description |
---|---|
TableInfo |
Overrides
Methods
InnerModifyQuery()
Template method called from ModifyQuery() during query processing; subclasses should implement it to build their queries. It will ONLY be called if IsQueryNeeded returns true.
Declaration
protected override void InnerModifyQuery()
Overrides
InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Derived classes should implement the population of ColumnData items for columns that are NOT handled by this base class in this method. Whether a column is handled by this base class is part of its database binding information, set by the various MapXXX methods.
Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type | Name | Description |
---|---|---|
SoDataReader | reader | Data reader with the query result (one row) |
ArchiveRow | row | archive row to be populated |
Overrides
SetDynamicJoin(string, string, ArchiveJoinType)
Define the join relation between this extender and the parent.
Declaration
public void SetDynamicJoin(string tableName, string fieldName, ArchiveJoinType joinType)
Parameters
Type | Name | Description |
---|---|---|
string | tableName | Name of the foreign key table |
string | fieldName | Name of the foreign key field |
ArchiveJoinType | joinType | Type of join |
Remarks
How the parent is specified is not part of this interface, see IArchiveProviderDoesExtend for that. This method is used to specify - without referring to table/field objects, because these are not known at the time of call - how this extender is linked to its parent. During the ModifyQuery phase of processing, this information will be used to instantiate a concrete join of some kind.
The table and field name specified here may be either a field handled by the parent (left outer join, inner join), or a field handled by this extender (right outer join, inner join). Implementations must examine their own and the parents' table to determine which direction is requested.SetJoin()
Subclass contract: Implementations of this method should create the extenders' table information object, join it to the relevant parent, and return the table information instance
Declaration
protected override TableInfo SetJoin()
Returns
Type | Description |
---|---|
TableInfo |
Overrides
ToString()
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string |