Class BufferedQueryProviderBase<RowType, InnerProviderType>
Inheritance
BufferedQueryProviderBase<RowType, InnerProviderType>
Assembly: SoDataBase.dll
Syntax
public abstract class BufferedQueryProviderBase<RowType, InnerProviderType> : TypedInMemoryProviderBase<RowType>, IArchiveTypedProvider<RowType>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities where RowType : ArchiveRow, new() where InnerProviderType : IArchiveProvider, new()
Type Parameters
Name |
Description |
RowType |
|
InnerProviderType |
|
Constructors
BufferedQueryProviderBase()
Declaration
protected BufferedQueryProviderBase()
Properties
AdditionalDesiredColumns
Declaration
protected virtual string[] AdditionalDesiredColumns { get; }
Property Value
ExternalDesiredColumns
Declaration
protected string[] ExternalDesiredColumns { get; }
Property Value
InnerOrderBy
Declaration
protected virtual ArchiveOrderByInfo[] InnerOrderBy { get; }
Property Value
InnerProvider
Declaration
protected InnerProviderType InnerProvider { get; }
Property Value
Type |
Description |
InnerProviderType |
|
Methods
GetAvailableColumns()
Get the list of columns handled by this provider
Declaration
public override List<ArchiveColumnInfo> GetAvailableColumns()
Returns
Overrides
GetAvailableEntities()
Get the list of entities supported by this provider
Declaration
public override List<ArchiveRowTypeInfo> GetAvailableEntities()
Returns
Overrides
SetDesiredColumns(params string[])
Override: Set desired columns, which are the externally desired columns plus whatever
comes out of AdditionalDesiredColumns. If BaseClassShouldFilterColumns is
true, the inner provider is asked for ALL columns (use this responsibly!!), and the filtering is
left to our base class.
Declaration
public override void SetDesiredColumns(params string[] columnIds)
Parameters
Type |
Name |
Description |
string[] |
columnIds |
Desired column ids
|
Overrides
SetDesiredEntities(params string[])
Declaration
public override void SetDesiredEntities(params string[] entities)
Parameters
Type |
Name |
Description |
string[] |
entities |
Array of entity names, semantically equivalent to ArchiveEntityInfo.Name fields.
|
Overrides
SetOrderBy(params ArchiveOrderByInfo[])
Declaration
public override void SetOrderBy(params ArchiveOrderByInfo[] orderBy)
Parameters
Overrides
SetPagingInfo(int, int)
Set the paging properties of the provider. The default is to fetch page zero, of one thousand (1000) rows. A more reasonable page size
is probably around 100. Note that the query processing strategy may change for very large pages (more than 1000) and give significantly
longer response times. Performance is improved by setting the page size low, as long as you don't set it lower than what you
realistically expect to need (fetching multiple pages is more expensive than fetching one).
Declaration
public override void SetPagingInfo(int pageSize, int pageNumber)
Parameters
Type |
Name |
Description |
int |
pageSize |
Desired page size
|
int |
pageNumber |
Desired page number to return
|
Overrides
SetRestriction(params ArchiveRestrictionInfo[])
Set query restriction globally, supersedes previous restrictions
Declaration
public override bool SetRestriction(params ArchiveRestrictionInfo[] restrictions)
Parameters
Type |
Name |
Description |
ArchiveRestrictionInfo[] |
restrictions |
Array of restrictions, with an implicit AND between them
|
Returns
Type |
Description |
bool |
true if at least one of the restrictions matched one of the available columns of the provider
|
Overrides
Implements
Extension Methods