Interface IArchiveMultiQueryProvider
This interface defines a query provider that itself contains multiple sub-providers. The sub-providers each generate their own set of rows, and the task of the multi provider is to keep track of them and merge their data. The standard base class MultiQueryProviderBase implements this interface.
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
public interface IArchiveMultiQueryProvider : IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities
Properties
Providers
Current list of providers
Declaration
List<IArchiveProvider> Providers { get; }
Property Value
Type | Description |
---|---|
List<IArchiveProvider> |
Methods
AddSubProvider<ProviderType>(ProviderType)
Add one provider to this multi query provider; rows from all selected providers will be merged according to the orderby criteria in effect. Providers are selected through SetDesiredEntities.
Declaration
ProviderType AddSubProvider<ProviderType>(ProviderType subProvider) where ProviderType : IArchiveProvider
Parameters
Type | Name | Description |
---|---|---|
ProviderType | subProvider | Provider to be added |
Returns
Type | Description |
---|---|
ProviderType |
Type Parameters
Name | Description |
---|---|
ProviderType | Type of provider, inferred from parameter |
Remarks
The generic input and return types are there so that you can write code like the following:
SomeProvider provider = AddSubProvider( new SomeProvider() );
That is, the provider you add is considered simply as an IArchiveProvider (see the where clause of the declaration), but it is returned as the actual type you sent in, whatever that might be - so it can be assigned to a strongly typed member. This saves a line, as you would otherwise have to assign the newly created subprovider, and then add it. A small convenience...