Класс Select

Сложный
PDF

Пространство имен Terrasoft.Core.DB.

Класс Terrasoft.Core.DB.Select предназначен для построения запросов выборки записей из таблиц базы данных. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения SELECT. В запрос можно добавить требуемые колонки, фильтры и условия ограничений. Результаты выполнения запроса возвращаются в виде экземпляра, реализующего интерфейс System.Data.IDataReader, либо скалярного значения требуемого типа.

Важно. При работе с классом Select не учитываются права доступа пользователя, использующего текущее соединение. Доступны абсолютно все записи из базы данных приложения. Также не учитываются данные, помещенные в хранилище кэша. Если необходимы дополнительные возможности по управлению правами доступа и работе с хранилищем кэша Creatio, следует использовать класс EntitySchemaQuery.

На заметку. Полный перечень методов и свойств класса Select, его родительских классов, а также реализуемых им интерфейсов можно найти в Библиотеке .NET классов.

Конструкторы 

Select(UserConnection userConnection)

Создает экземпляр класса с указанным UserConnection.

Select(UserConnection userConnection, CancellationToken cancellationToken)

Создает экземпляр класса с указанным UserConnection и токеном отмены выполнения управляемого потока.

Select(Select source)

Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.

Свойства 

UserConnection Terrasoft.Core.UserConnection

Пользовательское подключение, используемое при выполнении запроса.

RowCount int

Количество записей, которые вернет запрос после выполнения.

Parameters Terrasoft.Core.DB.QueryParameterCollection

Коллекция параметров запроса.

HasParameters bool

Определяет наличие параметров у запроса.

BuildParametersAsValue bool

Определяет, добавлять ли параметры запроса в текст запроса как значения.

Joins Terrasoft.Core.DB.JoinCollection

Коллекция выражений Join в запросе.

HasJoins bool

Определяет наличие выражений Join в запросе.

Condition Terrasoft.Core.DB.QueryCondition

Условие выражения Where запроса.

HasCondition bool

Определяет наличие выражения Where в запросе.

HavingCondition Terrasoft.Core.DB.QueryCondition

Условие выражения Having запроса.

HasHavingCondition bool

Определяет наличие выражения Having в запросе.

OrderByItems Terrasoft.Core.DB.OrderByItemCollection

Коллекция выражений, по которым выполняется сортировка результатов запроса.

HasOrderByItems bool

Определяет наличие условий сортировки результатов запроса.

GroupByItems Terrasoft.Core.DB.QueryColumnExpressionCollection

Коллекция выражений, по которым выполняется группировка результатов запроса.

HasGroupByItems bool

Определяет наличие условий группировки результатов запроса.

IsDistinct bool

Определяет, должен ли запрос возвращать только уникальные записи.

Columns Terrasoft.Core.DB.QueryColumnExpressionCollection

Коллекция выражений колонок запроса.

OffsetFetchPaging bool

Определяет возможность постраничного возврата результата запроса.

RowsOffset int

Количество строк, которые необходимо пропустить при возврате результата запроса.

QueryKind Terrasoft.Common.QueryKind

Тип запроса (см. статью Настройка отдельного пула запросов).

Методы 

void ResetCachedSqlText()

Очищает закэшированный текст запроса.

QueryParameterCollection GetUsingParameters()

Возвращает коллекцию параметров, используемых запросом.

void ResetParameters()

Очищает коллекцию параметров запроса.

QueryParameterCollection InitializeParameters()

Инициализирует коллекцию параметров запроса.

IDataReader ExecuteReader(DBExecutor dbExecutor)

Выполняет запрос, используя экземпляр DBExecutor. Возвращает объект, реализующий интерфейс IDataReader.

Параметры
dbExecutor Экземпляр DBExecutor, который используется для выполнения запроса.
IDataReader ExecuteReader(DBExecutor dbExecutor, CommandBehavior behavior)

Выполняет запрос, используя экземпляр DBExecutor. Возвращает объект, реализующий интерфейс IDataReader.

Параметры
behavior Предоставляет описание результатов запроса и их эффект на базу данных.
dbExecutor Экземпляр DBExecutor, который используется для выполнения запроса.
void ExecuteReader(ExecuteReaderReadMethod readMethod)

Выполняет запрос, вызывая переданный метод делегата ExecuteReaderReadMethod для каждой записи результирующего набора.

Параметры
readMethod Метод делегата ExecuteReaderReadMethod.
TResult ExecuteScalar<TResult>()

Выполняет запрос. Возвращает типизированный первый столбец первой записи результирующего набора.

TResult ExecuteScalar<TResult>(DBExecutor dbExecutor)

Выполняет запрос, используя экземпляр DBExecutor. Возвращает типизированный первый столбец первой записи результирующего набора.

Параметры
dbExecutor Экземпляр DBExecutor, который используется для выполнения запроса.
Select Distinct()

Добавляет к SQL-запросу ключевое слово DISTINCT. Исключает дублирование записей в результирующем наборе. Возвращает экземпляр запроса.

Select Top(int rowCount)

Устанавливает количество записей, возвращаемых в результирующем наборе. При этом меняется значение свойства RowCount. Возвращает экземпляр запроса.

Параметры
rowCount Количество первых записей результирующего набора.
Select As(string alias)

Добавляет указанный в аргументе псевдоним для последнего выражения запроса. Возвращает экземпляр запроса.

Параметры
alias Псевдоним выражения запроса.
Select Column(string sourceColumnAlias)
Select Column(string sourceAlias, string sourceColumnAlias)
Select Column(Select subSelect)
Select Column(Query subSelectQuery)
Select Column(QueryCase queryCase)
Select Column(QueryParameter queryParameter)
Select Column(QueryColumnExpression columnExpression)

Добавляет выражение, подзапрос или параметр в коллекцию выражений колонок запроса. Возвращает экземпляр запроса.

Параметры
sourceColumnAlias Псевдоним колонки, для которой добавляется выражение.
sourceAlias Псевдоним источника, из которого добавляется выражение колонки.
subSelect Добавляемый подзапрос выборки данных.
subSelectQuery Добавляемый подзапрос.
queryCase Добавляемое выражение для оператора Case.
queryParameter Добавляемый параметр запроса.
columnExpression Выражение, для результатов которого добавляется условие.
Select From(string schemaName)
Select From(Select subSelect)
Select From(Query subSelectQuery)
Select From(QuerySourceExpression sourceExpression)

Добавляет в запрос источник данных. Возвращает экземпляр запроса.

Параметры
schemaName Название схемы.
subSelect Подзапрос выборки, результаты которого становятся источником данных для текущего запроса.
subSelectQuery Подзапрос, результаты которого становятся источником данных для текущего запроса.
sourceExpression Выражение источника данных запроса.
Join Join(JoinType joinType, string schemaName)
Join Join(JoinType joinType, Select subSelect)
Join Join(JoinType joinType, Query subSelectQuery)
Join Join(JoinType joinType, QuerySourceExpression sourceExpression)

Присоединяет к текущему запросу схему, подзапрос или выражение.

Параметры
joinType Тип присоединения.
schemaName Название присоединяемой схемы.
subSelect Присоединяемый подзапрос выборки данных.
subSelectQuery Присоединяемый подзапрос.
sourceExpression Присоединяемое выражение.
Возможные значения (Terrasoft.Core.DB.JoinType)
Inner Внутреннее соединение.
LeftOuter Левое внешнее соединение.
RightOuter Правое внешнее соединение.
FullOuter Полное соединение.
Cross Перекрестное соединение.
QueryCondition Where()
QueryCondition Where(string sourceColumnAlias)
QueryCondition Where(string sourceAlias, string sourceColumnAlias)
QueryCondition Where(Select subSelect)
QueryCondition Where(Query subSelectQuery)
QueryCondition Where(QueryColumnExpression columnExpression)
Query Where(QueryCondition condition)

Добавляет к текущему запросу начальное условие.

Параметры
sourceColumnAlias Псевдоним колонки, для которой добавляется условие.
sourceAlias Псевдоним источника.
subSelect Подзапрос выборки данных, для результатов которого добавляется условие.
subSelectQuery Подзапрос, для результатов которого добавляется условие.
columnExpression Выражение, для результатов которого добавляется условие.
condition Условие запроса.
QueryCondition And()
QueryCondition And(string sourceColumnAlias)
QueryCondition And(string sourceAlias, string sourceColumnAlias)
QueryCondition And(Select subSelect)
QueryCondition And(Query subSelectQuery)
QueryCondition And(QueryParameter parameter)
QueryCondition And(QueryColumnExpression columnExpression)
Query And(QueryCondition condition)

К текущему условию запроса добавляет условие (предикат), используя логическую операцию И.

Параметры
sourceColumnAlias Псевдоним колонки, для которой добавляется предикат.
sourceAlias Псевдоним источника.
subSelect Подзапрос выборки данных, используемый в качестве предиката.
subSelectQuery Подзапрос, используемый в качестве предиката.
parameter Параметр, для которого добавляется предикат.
columnExpression Выражение, используемое в качестве предиката.
condition Условие запроса.
QueryCondition Or()
QueryCondition Or(string sourceColumnAlias)
QueryCondition Or(string sourceAlias, string sourceColumnAlias)
QueryCondition Or(Select subSelect)
QueryCondition Or(Query subSelectQuery)
QueryCondition Or(QueryParameter parameter)
QueryCondition Or(QueryColumnExpression columnExpression)
Query Or(QueryCondition condition)

К текущему условию запроса добавляет условие (предикат), используя логическую операцию ИЛИ.

Параметры
sourceColumnAlias Псевдоним колонки, для которой добавляется предикат.
sourceAlias Псевдоним источника.
subSelect Подзапрос на выборку данных, используемый в качестве предиката.
subSelectQuery Подзапрос, используемый в качестве предиката.
parameter Параметр, для которого добавляется предикат.
columnExpression Выражение, используемое в качестве предиката.
condition Условие запроса.
Query OrderBy(OrderDirectionStrict direction, string sourceColumnAlias)
Query OrderBy(OrderDirectionStrict direction, string sourceAlias, string sourceColumnAlias)
Query OrderBy(OrderDirectionStrict direction, QueryFunction queryFunction)
Query OrderBy(OrderDirectionStrict direction, Select subSelect)
Query OrderBy(OrderDirectionStrict direction, Query subSelectQuery)
Query OrderBy(OrderDirectionStrict direction, QueryColumnExpression columnExpression)

Выполняет сортировку результатов запроса. Возвращает экземпляр запроса.

Параметры
direction Порядок сортировки.
sourceColumnAlias Псевдоним колонки, по которой выполняется сортировка.
sourceAlias Псевдоним источника.
queryFunction Функция, значение которой используется в качестве ключа сортировки.
subSelect Подзапрос на выборку данных, результаты которого используются в качестве ключа сортировки.
subSelectQuery Подзапрос, результаты которого используются в качестве ключа сортировки.
columnExpression Выражение, результаты которого используются в качестве ключа сортировки.
Query OrderByAsc(string sourceColumnAlias)
Query OrderByAsc(string sourceAlias, string sourceColumnAlias)
Query OrderByAsc(Select subSelect)
Query OrderByAsc(Query subSelectQuery)
Query OrderByAsc(QueryColumnExpression columnExpression)

Выполняет сортировку результатов запроса в порядке возрастания. Возвращает экземпляр запроса.

Параметры
sourceColumnAlias Псевдоним колонки, по которой выполняется сортировка.
sourceAlias Псевдоним источника.
subSelect Подзапрос на выборку данных, результаты которого используются в качестве ключа сортировки.
subSelectQuery Подзапрос, результаты которого используются в качестве ключа сортировки.
columnExpression Выражение, результаты которого используются в качестве ключа сортировки.
Query OrderByDesc(string sourceColumnAlias)
Query OrderByDesc(string sourceAlias, string sourceColumnAlias)
Query OrderByDesc(Select subSelect)
Query OrderByDesc(Query subSelectQuery)
Query OrderByDesc(QueryColumnExpression columnExpression)

Выполняет сортировку результатов запроса в порядке убывания. Возвращает экземпляр запроса.

Параметры
sourceColumnAlias Псевдоним колонки, по которой выполняется сортировка.
sourceAlias Псевдоним источника.
subSelect Подзапрос выборки, результаты которого используются в качестве ключа сортировки.
subSelectQuery Подзапрос, результаты которого используются в качестве ключа сортировки.
columnExpression Выражение, результаты которого используются в качестве ключа сортировки.
Query GroupBy(string sourceColumnAlias)
Query GroupBy(string sourceAlias, string sourceColumnAlias)
Query GroupBy(QueryColumnExpression columnExpression)

Выполняет группировку результатов запроса. Возвращает экземпляр запроса.

Параметры
sourceColumnAlias Псевдоним колонки, по которой выполняется группировка.
sourceAlias Псевдоним источника.
columnExpression Выражение, результаты которого используются в качестве ключа группировки.
QueryCondition Having()
QueryCondition Having(string sourceColumnAlias)
QueryCondition Having(string sourceAlias, string sourceColumnAlias)
QueryCondition Having(Select subSelect)
QueryCondition Having(Query subSelectQuery)
QueryCondition Having(QueryParameter parameter)
QueryCondition Having(QueryColumnExpression columnExpression)

Добавляет в текущий запрос групповое условие. Возвращает экземпляр Terrasoft.Core.DB.QueryCondition, представляющий групповое условие для параметра запроса.

Параметры
sourceColumnAlias Псевдоним колонки, по которой добавляется групповое условие.
sourceAlias Псевдоним источника.
subSelect Подзапрос выборки, для результатов которого добавляется групповое условие.
subSelectQuery Подзапрос, для результатов которого добавляется групповое условие.
parameter Параметр запроса, для которого добавляется групповое условие.
columnExpression Выражение, используемое в качестве предиката.
Query Union(Select unionSelect)
Query Union(Query unionSelectQuery)

Объединяет результаты переданного запроса с результатами текущего запроса, исключая дубликаты из результирующего набора.

Параметры
unionSelect Подзапрос выборки.
unionSelectQuery Подзапрос.
Query UnionAll(Select unionSelect)
Query UnionAll(Query unionSelectQuery)

Объединяет результаты переданного запроса с результатами текущего запроса. Дубликаты из результирующего набора не исключаются.

Параметры
unionSelect Подзапрос выборки.
unionSelectQuery Подзапрос.