Table of Contents

Namespace ToSic.Eav.DataSources

DataSources are objects which deliver one or many DataStreams, which contain a bunch of content-items. They are then attached to each other (from one sources Out to another ones In) creating a Query. Queries can be customized at will. The whole system is used to prepare/process data for views, WebApi or anything else.

In most cases there will be a VisualQuery which connects all the parts automatically, but when you want to work with them programatically, here you'll find the API.

Note

We've hidden the constructors for all DataSource objects in these docs, because you should usually use the CreateSource<T>(...) command on the Razor template or WebApi, which will auto-configure things behind the scenes.

Tip

Read about DataSources here. It also explains how the configuration system works and how to create custom DataSources to deliver your data to EAV/2sxc.

Namespaces

ToSic.Eav.DataSources.Caching
ToSic.Eav.DataSources.Sys

Classes

App

All the data inside an App.
For example, it has a variable amount of Out-streams, one for each content-type in the app.

AppRoot

The App Root is the entry point for all data. It takes it's data from a hidden AppState Cache. It's implemented as a DataSource so that other DataSources can easily attach to it.
This is also the object returned as the root in any query.

AttributeFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

AttributeRename

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Children

Get Children Entities (child-relationships) of the Entities coming into this DataSource

Csv

DataSource for importing/reading CSV files.

DataTable

Provide Entities from a System.Data.DataTable.
This is not meant for VisualQuery, but for code which pre-processes data in a DataTable and then wants to provide it as entities.

EntityIdFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

EntityTypeFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Error

Internal DataSource to generate an error on purpose. This is to test / verify error handling in VisualQuery. See also VisualQuery 3: Debugging

ItemFilterDuplicates

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

LanguageModeler

Remodels multi-language values in own fields (like NameDe, NameEn) to single multi-language fields like Name

Metadata

Get Metadata (metadata Entities) of the Entities coming into this DataSource

MetadataTargets

Get Target Entities (metadata targets) of the Entities coming into this DataSource

OwnerFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Paging

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Parents

Get Parent Entities (parent-relationships) of the Entities coming into this DataSource

PassThrough

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

PublishingFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

QueryRun

Run another query and provide the resulting data. The settings will provide the params for the inner query.

RelationshipFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Serialization

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Shuffle

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Sql

Provide Entities from a SQL Server

StreamFallback

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

StreamMerge

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

StreamPick

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

TreeModeler

Use this to take imported data from elsewhere which is a table but would have a tree-like structure (folders, etc.). Tell it where/how the relationships are mapped, and it will create Entities that have navigable relationships for this.

ValueFilter

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

ValueSort

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

Interfaces

IAppRoot

Interface for the App Root - usually the very first node in any data-delivery or query.
It's just like a normal IDataSource but will internally access the ToSic.Eav.Apps.IAppState from the Cache/>.