Способы доступа к базе данных, которые предоставляют back-end компоненты ядра:
- Доступ через ORM-модель.
- Прямой доступ.
В этой статье будет рассмотрено выполнение запросов к базе данных через ORM-модель.
ORM (Object-relational mapping) — технология, которая позволяет работать с данными, полученными из базы данных, путем использования объектно-ориентированных языков программирования. Назначение ORM — связывание объектов, реализованных в коде, с записями в таблицах базы данных.
Классы, которые реализуют работу с данными через ORM-модель данных:
- Terrasoft.Core.Entities.EntitySchemaQuery — построение запросов на получение записей из таблиц базы данных с учетом прав доступа текущего пользователя.
- Terrasoft.Core.Entities.Entity — доступ к сущности, которая представляет собой запись в таблице базы данных.
Для доступа к данным рекомендуется использовать ORM-модель, хотя прямой доступ к базе данных также реализован в back-end компонентах ядра. Выполнение запросов к базе данных через прямой доступ подробно описано в статье Прямой доступ к данным.
Сформировать путь к колонке относительно корневой схемы
Основой механизма построения запроса на выборку с применением EntitySchemaQuery является корневая схема. Корневая схема — это таблица в базе данных, относительно которой строятся пути к колонкам в запросе, в том числе к колонкам присоединяемых таблиц. Для использования в запросе колонки из таблицы базы данных необходимо корректно задать путь к этой колонке.
При построении путей к колонкам применяется принцип связей через справочные поля. Имя колонки, добавляемой в запрос, строится в виде цепочки взаимосвязанных звеньев. Каждое звено представляет собой "контекст" конкретной схемы, которая связывается с предыдущей по справочной колонке.
Шаблон формирования пути к колонке из схемы N: КонтекстСхемы1.
Сформировать путь к колонке по прямым связям
Шаблон формирования пути к колонке по прямым связям: ИмяСправочнойКолонки.
Прямые связи используются, когда справочная колонка для связи присутствует в основной схеме и ссылается на присоединяемую схему. Например, есть корневая схема [City] со справочной колонкой [Country], которая через колонку [Id] связана со справочной схемой [Country].
Путь к колонке с наименованием страны, которой принадлежит город по прямым связям: Country.Name. Здесь:
- Country — имя справочной колонки корневой схемы [City] (ссылается на схему [Country]).
- Name — имя колонки из справочной схемы [Country].
Сформировать путь к колонке по обратным связям
Отличие присоединения по обратным связям от присоединения по прямым связям — справочное поле для присоединения должно быть у присоединяемой сущности, а не у основной.
Шаблон формирования пути к колонке по обратным связям: [ИмяПрисоединяемойСхемы:
Путь к колонке с названием контрагента, у которого в поле [Город] указана выбираемая в запросе запись [City] по обратным связям: [Account:City:Id].Name. Здесь:
- Account — имя присоединяемой схемы.
- City — имя колонки схемы [Account] для установки связи присоединяемой схемы.
- Id — имя справочной колонки схемы [City] для установки связи текущей схемы.
- Name — значение справочной колонки схемы [Account].
Если в качестве колонки для связи у текущей схемы выступает колонка [Id], то ее можно не указывать: [ИмяПрисоединяемойСхемы:
Получить данные из базы данных
Классы, которые реализуют получение данных из базы данных:
- Terrasoft.Core.DB.Select — получение данных из базы данных через прямой доступ. Подробнее читайте в статье Прямой доступ к данным.
- Terrasoft.Core.Entities.EntitySchemaQuery — получение данных из базы данных через ORM-модель.
Назначение класса Terrasoft.Core.Entities.EntitySchemaQuery — построение запросов на выборку записей из таблиц базы данных. Максимальное количество записей, которые можно получить по запросу, задается настройкой MaxEntityRowCount (по умолчанию — 20 000). Изменить значение настройки можно в файле ...\Terrasoft.WebApp\Web.config.
После создания и конфигурирования экземпляра класса будет построен SELECT-запрос к базе данных приложения. В запрос можно добавить колонки, фильтры и условия ограничений. Также можно задать параметры для постраничного вывода результатов выполнения запроса. Используя класс Terrasoft.Core.Entities.EntitySchemaQueryOptions, можно задать параметры построения иерархического запроса. Передача одного и того же экземпляра EntitySchemaQueryOptions в качестве параметра метода GetEntityCollection() соответствующего запроса позволяет получить результат выполнения различных запросов.
Особенности класса Terrasoft.Core.Entities.EntitySchemaQuery:
- В результирующем запросе учитываются права доступа текущего пользователя.
- Класс позволяет управлять правами доступа текущего пользователя на таблицы, присоединенные в запрос с помощью SQL-оператора JOIN.
- Класс позволяет работать с данными хранилища кэша или произвольного хранилища, которое определено пользователем.
При выполнении запроса данные, полученные из базы данных, помещаются в кэш. В качестве кэша запроса может выступать произвольное хранилище, которое реализует интерфейс Terrasoft.Core.Store.ICacheStore. По умолчанию используется кэш Creatio уровня сессии с локальным хранением данных. Кэш запроса определяется свойством Cache экземпляра класса EntitySchemaQuery. С помощью свойства CacheItemName задается ключ доступа к кэшу запроса. Уровни хранилищ Creatio подробно описаны в статье Хранилища данных и кэш.
Результат выполнения запроса — экземпляр Terrasoft.Nui.ServiceModel.DataContract.EntityCollection или коллекция экземпляров класса Terrasoft.Core.Entities.Entity. Каждый экземпляр Entity в коллекции представляет собой строку набора данных, возвращаемого запросом.
Управлять присоединенными таблицами
Класс EntitySchemaQuery позволяет указать тип присоединения схемы к запросу. Для добавления в запрос колонки из присоединяемой схемы используется оператор JOIN.
Шаблон формирования типа соединения к колонке присоединяемой схемы: СпецсимволТипаСоединения
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
По умолчанию используется тип присоединения LEFT OUTER JOIN.
Ниже представлен пример добавления колонок в запрос с использованием разных типов соединения.
В результате будет сформирован SQL-запрос.
Если запрос содержит корневую схему и присоединяемые схемы, которые администрируются по записям, то можно применить права доступа текущего пользователя. Варианты применения прав доступа по записям к присоединенным схемам заданы перечислением Terrasoft.Core.DB.QueryJoinRightLevel.
Варианты применения прав доступа к присоединяемым схемам запроса:
- Всегда применяются.
- Применяются, если в присоединяемой схеме запроса используются колонки, отличные от первичной и первичной для отображения. Чаще всего это колонки [Id] и [Name].
- Не применяются.
Порядок применения прав доступа определяется значением свойства JoinRightState запроса. Значение этого свойства по умолчанию определяется системной настройкой Способ администрирования связанных объектов (код QueryJoinRightLevel). Если значение этой системной настройки не задано, то права доступа применяются, если в присоединяемой схеме запроса используются колонки, отличные от первичной и первичной для отображения.
Управлять фильтрами в запросе
Фильтр — набор условий, применяемых при отображении данных запроса. В терминах SQL фильтр представляет собой отдельный предикат (условие) оператора WHERE.
Для создания простого фильтра в EntitySchemaQuery используется метод CreateFilter(), который возвращает экземпляр типа EntitySchemaQueryFilter. Для этого метода в EntitySchemaQuery реализован ряд перегрузок. Это позволяет создавать фильтры с разными исходными параметрами. В EntitySchemaQuery реализованы методы создания фильтров специального вида.
Экземпляр EntitySchemaQuery имеет свойство Filters, которое представляет собой коллекцию фильтров данного запроса (экземпляр класса EntitySchemaQueryFilterCollection). Экземпляр класса EntitySchemaQueryFilterCollection представляет собой типизированную коллекцию элементов IEntitySchemaQueryFilterItem.
Алгоритм добавления фильтра в запрос:
- Создайте экземпляр фильтра для данного запроса (метод CreateFilter(), методы создания фильтров специального вида).
- Добавьте созданный экземпляр фильтра в коллекцию фильтров запроса (метод Add() коллекции).
По умолчанию фильтры, добавляемые в коллекцию Filters, объединяются между собой логической операцией AND. При реализации логической операции OR необходимо использовать свойство LogicalOperation коллекции Filters. Это свойство принимает значения перечисления LogicalOperationStrict и позволяет указать логическую операцию, которой необходимо объединять фильтры.
В запросах EntitySchemaQuery реализована возможность управления фильтрами, участвующими в построении результирующего набора данных. Каждый элемент коллекции Filters имеет свойство IsEnabled, которое определяет, участвует ли данный элемент в построении результирующего запроса (true — участвует, false — не участвует). Аналогичное свойство IsEnabled также определено для коллекции Filters. Установив это свойство в false, можно отключить фильтрацию для запроса, при этом коллекция фильтров запроса останется неизменной. Таким образом, изначально сформировав коллекцию фильтров запроса, в дальнейшем можно использовать различные комбинации, не внося изменений в саму коллекцию.
Управлять сущностью базы данных
Terrasoft.Core.Entities.Entity — класс, который реализует работу с сущностью базы данных.
Назначение класса Terrasoft.Core.Entities.Entity — доступ к объекту, который является записью в таблице базы данных. Класс также можно использовать для CRUD-операций над соответствующими записями.
Пространство имен Terrasoft.Core.Entities.
Класс Terrasoft.Core.Entities.EntitySchemaQuery предназначен для построения запросов выборки записей из таблиц базы данных с учетом прав доступа текущего пользователя. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения SELECT. В запрос можно добавить требуемые колонки, фильтры и условия ограничений.
Конструкторы
Создает экземпляр класса, в котором в качестве корневой схемы устанавливается переданный экземпляр EntitySchema. В качестве менеджера схем устанавливается менеджер переданного экземпляра корневой схемы.
Создает экземпляр класса с указанным EntitySchemaManager и корневой схемы с именем, переданным в качестве аргумента.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Кэш запроса.
Имя элемента кэша.
Определяет, попадут ли в результаты запроса данные, для которых не завершена транзакция.
Заголовок.
Количество строк запроса в одном чанке.
Коллекция колонок текущего запроса к схеме объекта.
Менеджер значений типов данных.
Менеджер схем объектов.
Коллекция фильтров текущего запроса к схеме объекта.
Определяет, будут ли скрыты значения зашифрованных колонок.
Определяет, будут ли в запросе использоваться отображаемые значения колонок.
Определяет, убирать ли дубли в результирующем наборе данных.
Определяет, является ли запрос унаследованным.
Определяет условие наложения прав при использовании связанных таблиц, если схема администрируется по записям.
Менеджер схем.
Элемент менеджера.
Имя.
Коллекция запросов, которой принадлежит текущий запрос к схеме объекта.
Родительская схема запроса.
Колонка, созданная по первичной колонке корневой схемы. Заполняется при первом обращении.
Разрешает использование оптимизации запроса.
Корневая схема.
Количество строк, возвращаемых запросом.
Префикс, используемый для создания псевдонимов схем.
Количество строк, которые необходимо пропустить при возврате результата запроса.
Определяет будут ли учитываться права при построении запроса получения данных.
Определяет, будут ли использоваться локализованные данные.
Определяет возможность постраничного возврата результата запроса.
Определяет, будут ли данные исключены из фильтрации.
Целочисленное свойство, которое соответствует критериям фильтрации записей по источнику вхождения пользователя в роли. Значение по умолчанию: 0.
Чтобы сформировать AdminUnitRoleSources, необходимо с помощью побитового ИЛИ "|" перечислить следующие константы из серверного класса AdminUnitRoleSources:
- ExplicitEntry.
- Delegated.
- FuncRoleFromOrgRole.
- UpHierarchy.
- AsManager.
- All.
- None.
В результате, отработает следующее правило: возвращать запись только, если у пользователя есть хоть одна роль, которой доступна запись, и пользователь входит в эту роль в соответствии с источниками, указанными в условиях фильтрации.
Методы
В коллекцию колонок текущего запроса к схеме объекта добавляет все колонки корневой схемы.
Создает и добавляет колонку в текущий запрос к схеме объекта.
columnPath | Путь к колонке схемы относительно корневой схемы. |
aggregationType | Тип агрегирующей функции. В качестве параметра передаются значения перечисления типов агрегирующей функции Terrasoft.Common.AggregationTypeStrict. |
subQuery | Ссылка на созданный подзапрос, помещенный в колонку. |
queryColumn | Экземпляр EntitySchemaQueryColumn, добавляемый в коллекцию колонок текущего запроса. |
function | Экземпляр функции EntitySchemaQueryFunction. |
parameterValue | Значение параметра, добавляемого в запрос в качестве колонки. |
parameterDataValueType | Тип значения параметра, добавляемого в запрос в качестве колонки. |
Очищает кэш текущего запроса.
Удаляет из кэша запроса элемент с заданным именем cacheItemName.
Создает клон текущего экземпляра EntitySchemaQuery.
Возвращает выражение агрегирующей функции с заданным типом агрегации из перечисления Terrasoft.Common.AggregationTypeStrict для колонки, расположенной по заданному пути leftExprColumnPath.
Создает выражение для параметра запроса.
parameterValue | Значение параметра. |
valueType | Тип значения параметра. |
displayValue | Значение для отображения параметра. |
Создает коллекцию выражений для параметров запроса с определенным типом данных DataValueType.
Возвращает выражение колонки схемы объекта.
parentQuery | Запрос к схеме объекта, для которого создается выражение колонки. |
rootSchema | Корневая схема. |
columnPath | Путь к колонке относительно корневой схемы. |
useCoalesceFunctionForMultiLookup | Признак, использовать ли для колонки типа справочник функцию COALESCE. Необязательный параметр, по умолчанию равен true. |
useDisplayValue | Признак, использовать ли для колонки значение для отображения. Необязательный параметр, по умолчанию равен false. |
Возвращает коллекцию выражений колонок запроса к схеме объекта по заданной коллекции путей к колонкам columnPaths.
Возвращает коллекцию выражений колонок запроса к схеме объекта по заданному массиву путей к колонкам. При этом, если колонка имеет тип множественный справочник, к ее значениям не применяется функция COALESCE.
Возвращает выражение запроса к схеме объекта по заданным пути к колонке, корневой схеме и экземпляру колонки схемы. При этом для колонки можно определить, какой тип ее значения использовать в выражении — хранимое значение или значение для отображения.
Возвращает выражение подзапроса к схеме объекта для колонки, расположенной по заданному пути leftExprColumnPath.
Возвращает экземпляр агрегирующей функции EntitySchemaAggregationQueryFunction с заданным типом агрегации из перечисления Terrasoft.Common.AggregationTypeStrict для колонки по указанному пути относительно корневой схемы columnPath.
Возвращает экземпляр CASE-функции EntitySchemaCaseNotNullQueryFunction для заданного массива выражений условий EntitySchemaCaseNotNullQueryFunctionWhenItem.
Возвращает экземпляр выражения для sql-конструкции вида WHEN <Выражение_1> IS NOT NULL THEN <Выражение_2>.
whenColumnPath | Путь к колонке, содержащей выражение предложения WHEN. |
thenParameterValue | Путь к колонке, содержащей выражение предложения THEN. |
Возвращает экземпляр CAST-функции EntitySchemaCastQueryFunction для выражения колонки, расположенной по заданному пути относительно корневой схемы columnPath, и указанным целевым типом данных DBDataValueType.
Возвращает экземпляр функции, возвращающей первое не равное null выражение из списка аргументов, для заданных колонок.
columnPaths | Массив путей к колонкам относительно корневой схемы. |
parentQuery | Запрос к схеме объекта, для которого создается экземпляр функции. |
rootSchema | Корневая схема. |
Возвращает экземпляр функции для формирования строки, являющейся результатом объединения строковых значений аргументов функции для заданного массива выражений EntitySchemaQueryExpression.
Возвращает экземпляр DATEPART-функции EntitySchemaDatePartQueryFunction, определяющей интервал даты, заданный перечислением EntitySchemaDatePartQueryFunctionInterval (месяц, день, час, год, день недели...), для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, определяющей интервал даты День для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Час для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Минута для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Месяц для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты День недели для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Неделя для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Год для значения колонки, расположенной по указанному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaIsNullQueryFunction для колонок с проверяемым и замещающим значениями, которые расположены по заданным путям относительно корневой схемы.
Создание экземпляра функции LEN (функция для возврата длины выражения) для выражения колонки по заданному пути относительно корневой схемы или для заданного массива выражений.
Возвращает экземпляр функции TRIM (функция для удаления начальных и конечных пробелов из выражения) для выражения колонки по заданному пути относительно корневой схемы или для заданного массива выражений.
Возвращает экземпляр функции EntitySchemaUpperQueryFunction, для преобразования символов выражения аргумента к верхнему регистру, для выражения колонки по заданному пути относительно корневой схемы.
Возвращает экземпляр функции EntitySchemaCurrenddateQueryFunction, определяющей текущую дату.
Возвращает экземпляр функции EntitySchemaCurrenddateTimeQueryFunction, определяющей текущие дату и время.
Возвращает экземпляр функции EntitySchemaCurrentTimeQueryFunction, определяющей текущее время.
Возвращает экземпляр функции EntitySchemaCurrentUserAccountQueryFunction, определяющей идентификатор контрагента текущего пользователя.
Возвращает экземпляр функции EntitySchemaCurrentUserContactQueryFunction, определяющей идентификатор контакта текущего пользователя.
Возвращает экземпляр функции EntitySchemaCurrentUserQueryFunction, определяющей текущего пользователя.
Создает фильтр сравнения типа Существует по заданному условию и устанавливает в качестве проверяемого значения выражение колонки, расположенной по пути rightExpressionColumnPath.
Создает фильтр запроса для выборки записей по определенным условиям.
comparisonType | Тип сравнения из перечисления Terrasoft.Core.Entities.FilterComparisonType. |
leftExpressionColumnPath | Путь к колонке, содержащей выражение левой части фильтра. |
leftExpression | Выражение в левой части фильтра. |
leftExprAggregationType | Тип агрегирующей функции. |
leftExprSubQuery | Параметр, в котором возвращается подзапрос для выражения в левой части фильтра (если он не равен null) либо подзапрос для первого выражения в правой части фильтра (если выражение левой части фильтра равно null). |
rightExpressionColumnPaths | Массив путей к колонкам, содержащим выражения правой части фильтра. |
rightExpression | Выражение в правой части фильтра. |
rightExpressionValue | Экземпляр функции выражения в правой части фильтра (тип параметра EntitySchemaQueryFunction ) или выражение подзапроса в правой части фильтра (тип параметра EntitySchemaQuery). |
rightValue | Значение, которое обрабатывается макросом в правой части фильтра. |
rightExprParameterValue | Значение параметра, к которому применяется агрегирующая функция в правой части фильтра. |
macrosType | Тип макроса из перечисления Terrasoft.Core.Entities.EntitySchemaQueryMacrosType. |
daysCount | Значение, к которому применяется макрос в правой части фильтра. Необязательный параметр, по умолчанию равен 0. |
Создает параметризированный фильтр для выборки записей по определенным условиям.
parentQuery | Родительский запрос, для которого создается фильтр. |
rootSchema | Корневая схема. |
comparisonType | Тип сравнения из перечисления Terrasoft.Core.Entities.FilterComparisonType. |
useDisplayValue | Признак типа значения колонки, которое используется в фильтре: true - значение для отображения; false - хранимое значение. |
leftExpressionColumnPath | Путь к колонке, содержащей выражение левой части фильтра. |
rightExpressionParameterValues | Коллекция выражений параметров в правой части фильтра. |
Создает фильтр сравнения типа Не является null в базе данных, устанавливая в качестве проверяемого значения выражение колонки, расположенной по указанному в параметре leftExpressionColumnPath пути.
Создает фильтр сравнения типа Является null в базе данных, устанавливая в качестве условия проверки выражение колонки, расположенной по указанному в параметре leftExpressionColumnPath пути.
Создает фильтр сравнения типа Не существует по заданному условию и устанавливает в качестве проверяемого значения выражение колонки, расположенной по пути rightExpressionColumnPath.
Возвращает результат выполнения текущего запроса к схеме объекта в виде таблицы данных в памяти, используя пользовательское подключение UserConnection.
Возвращает порядковый номер дня недели для объекта System.DayOfWeek с учетом региональных настроек.
Возвращает экземпляр Entity по первичному ключу primaryColumnValue, используя пользовательское подключение UserConnection.
Возвращает коллекцию экземпляров Entity, представляющих результаты выполнения текущего запроса, используя пользовательское подключение UserConnection и заданные дополнительные настройки запроса EntitySchemaQueryOptions.
Возвращает экземпляр схемы объекта EntitySchema текущего экземпляра EntitySchemaQuery.
Возвращает экземпляр запроса на выборку данных, используя пользовательское подключение UserConnection и заданные дополнительные настройки запроса EntitySchemaQueryOptions.
Возвращает коллекцию выражений колонок запроса, для которых вычисляются итоговые значения.
Возвращает экземпляр Entity для результата, возвращаемого запросом на выборку итоговых значений.
userConnection | Пользовательское подключение. |
summaryColumns | Коллекция колонок запроса, для которых выбираются итоговые значения. |
columnNames | Коллекция имен колонок. |
Строит запрос на выборку итоговых значений для заданной коллекции колонок текущего экземпляра EntitySchemaQuery.
userConnection | Пользовательское подключение. |
summaryColumns | Коллекция колонок запроса, для которых выбираются итоговые значения. |
columnNames | Коллекция имен колонок. |
Возвращает типизированное значение колонки с именем columnName из переданного экземпляра Entity.
Загружает результат выполнения текущего запроса к схеме объекта в объект System.Data.DataTable, используя пользовательское подключение UserConnection и заданные дополнительные настройки запроса EntitySchemaQueryOptions.
Удаляет колонку с именем columnName из коллекции колонок текущего запроса.
Очищает схему текущего экземпляра EntitySchemaQuery.
Очищает запрос на выборку для текущего запроса к схеме объекта.
Устанавливает идентификатор локальной культуры.
Пространство имен Terrasoft.Core.Entities.
Класс Terrasoft.Core.Entities.Entity предназначен для доступа к объекту, который представляет собой запись в таблице базы данных.
Конструкторы
Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection.
Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection и схемы заданной идентификатором schemaUId.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Тип изменения состояния объекта (добавлен, изменен, удален, без изменений).
Экземпляр менеджера схемы объекта.
Имя менеджера схемы объекта.
Определяет, имеет ли объект хотя бы одну колонку.
Значение колонки связи с родительской записью для иерархических объектов.
Идентификатор экземпляра объекта.
Определяет, удален ли объект из базы данных.
Определяет, выполняется ли обработка события ColumnValueChanged.
Определяет, выполняется ли обработка события ColumnValueChanging.
Определяет, выполняется ли обработка события DefColumnValuesSet.
Определяет, выполняется ли обработка события Deleted.
Определяет, выполняется ли обработка события Deleting.
Определяет, выполняется ли обработка события Inserted.
Определяет, выполняется ли обработка события Inserting.
Определяет, выполняется ли обработка события Loaded.
Определяет, выполняется ли обработка события Loading.
Определяет, выполняется ли обработка события Saved.
Определяет, выполняется ли обработка события SaveError.
Определяет, выполняется ли обработка события Saving.
Определяет, выполняется ли обработка события Updated.
Определяет, выполняется ли обработка события Updating.
Определяет, выполняется ли обработка события Validating.
Определяет, является ли схема объекта проинициализированной.
Префикс лицензируемой операции.
Состояние загрузки объекта.
Идентификатор первичной колонки.
Значение для отображения первичной колонки.
Встроенный процесс объекта.
Экземпляр схемы объекта.
Имя схемы объекта.
Состояние объекта (изменен, добавлен, удален, без изменений).
Определяет, будут ли учитываться права при вставке, обновлении, удалении и получении данных.
Определяет, использовать ли права по умолчанию на объект.
Определяет, использовать ли ленивую первоначальную загрузку данных объекта.
Пользовательское подключение.
Коллекция сообщений, выводимых при проверке объекта.
Экземпляр менеджера перечислений объекта.
Имя менеджера перечислений объекта.
Методы
Для данного объекта устанавливает права по умолчанию.
primary |
Идентификатор значения права доступа. |
primary |
Массив идентификаторов значений прав доступа. |
Создает клон текущего экземпляра Entity.
Создает запрос на добавление данных в базу.
skip |
Признак добавления данных с учетом справочных колонок. По умолчанию установлено значение false. |
Создает запрос на обновление данных в базе.
skip |
Параметр, определяющий необходимость добавления в базу данных колонок типа справочник. Если параметр равен true, то колонки типа справочник не будут добавлены в базу. Значение по умолчанию — false. |
Удаляет из базы данных запись объекта.
key |
Значение ключевого поля. |
Удаляет из базы данных запись объекта и отменяет запущенный процесс.
Создает объект типа Entity, используя пользовательское подключение userConnection, и заполняет значения его полей из указанной строки формата JSON jsonValue.
json |
Строка формата JSON. |
user |
Пользовательское подключение. |
Определяет, существует ли в базе данных запись, отвечающая заданному условию запроса conditionValue к заданной колонке схемы объекта conditionColumn либо с заданным первичным ключом keyValue.
condition |
Колонка, для которой задается условие выборки. |
condition |
Название колонки, для которой задается условие выборки. |
condition |
Значение колонки условия для выбираемых данных. |
conditions | Набор условий фильтрации выборки записей объекта. |
key |
Значение ключевого поля. |
По заданному условию загружает объект из базы данных.
condition |
Колонка, для которой задается условие выборки. |
condition |
Название колонки, для которой задается условие выборки. |
condition |
Значение колонки условия для выбираемых данных. |
columns |
Список колонок, которые будут выбраны. |
column |
Список названий колонок, которые будут выбраны. |
conditions | Набор условий фильтрации выборки записей объекта. |
key |
Значение ключевого поля. |
use |
Признак получения в запросе первичных отображаемых значений. Если параметр равен true, в запросе будут возвращены первичные отображаемые значения. |
По заданному условию keyValue загружает из базы данных объект с первичной колонкой.
key |
Значение ключевого поля. |
По заданному условию загружает из базы данных объект с первичными колонками, включая колонку, первичную для отображения.
condition |
Колонка, для которой задается условие выборки. |
condition |
Название колонки, для которой задается условие выборки. |
condition |
Значение колонки условия для выбираемых данных. |
Возвращает значение заданной колонки объекта в виде массива байт.
value |
Имя колонки объекта. |
Возвращает коллекцию имен колонок объекта, которые были изменены.
Возвращает значение для отображения свойства объекта, соответствующее заданной колонке схемы объекта.
column | Определенная колонка схемы объекта. |
Возвращает предыдущее значение заданного свойства объекта.
column | Определенная колонка схемы объекта. |
value |
Имя колонки объекта. |
Возвращает значение колонки объекта с заданным именем, cоответствующее переданной колонке схемы объекта.
column | Определенная колонка схемы объекта. |
value |
Имя колонки объекта. |
Возвращает коллекцию имен колонок объекта.
Возвращает признак, определяющий, загружено ли заданное свойство объекта.
column | Определенная колонка схемы объекта. |
value |
Имя колонки объекта. |
Возвращает преобразованное в экземпляр типа System.IO.MemoryStream значение переданной колонки схемы объекта.
value |
Имя колонки объекта. |
Возвращает типизированное значение свойства объекта, соответствующее заданной колонке схемы объекта.
column | Определенная колонка схемы объекта. |
Возвращает типизированное предыдущее значение свойства объекта, соответствующее заданной колонке схемы объекта.
column | Определенная колонка схемы объекта. |
value |
Имя колонки объекта. |
Добавляет запись текущего объекта в базу данных.
skip |
Параметр, определяющий необходимость добавления в базу данных колонок типа справочник. Если параметр равен true, то колонки типа справочник не будут добавлены в базу. Значение по умолчанию — false. |
validate |
Параметр, определяющий необходимость проверки заполнения обязательных значений. Значение по умолчанию — true. |
Определяет, загружено ли значение свойства объекта с заданным именем.
column | Определенная колонка схемы объекта. |
value |
Имя колонки объекта. |
Заполняет объект переданными данными.
column |
Свойства объекта, заполняемые данными. |
data |
Экземпляр System.Data.DataRow, из которого загружаются данные в объект. |
data |
Экземпляр System.Data.IDataReader, из которого загружаются данные. |
data |
Экземпляр System.Object, из которого загружаются данные. |
Для свойства с заданным именем загружает его значение из переданного экземпляра.
binary |
Размер загружаемого значения. |
column | Колонка схемы объекта. |
column |
Имя свойства объекта. |
data |
Экземпляр System.Data.IDataReader, из которого загружается значение свойства. |
field |
Индекс загружаемого из System.Data.IDataReader поля. |
value | Загружаемое значение свойства. |
Возвращает значение текущего свойства типа Entity из потока ввода.
data |
Экземпляр System.Data.IDataReader, из которого загружается значение свойства. |
user |
Пользовательское подключение. |
Считывает данные из схемы объекта в заданный объект типа System.Data.IDataReader.
reader | Экземпляр System.Data.IDataReader, в который загружаются данные схемы объекта. |
schema | Схема объекта. |
Для всех свойств объекта отменяет изменения.
Для всех свойств объекта отменяет изменения, устанавливая предыдущее значение.
Сохраняет объект в базе данных.
validate |
Определяет необходимость проверки заполнения обязательных значений. Значение по умолчанию — true. |
Преобразует объект entity в строку формата JSON.
entity | Экземпляр Entity. |
Устанавливает для заданного свойства объекта переданное значение типа System.Byte.
stream |
Значение типа System.Byte, которое устанавливается в заданную колонку объекта. |
value |
Имя колонки объекта. |
Устанавливает свойству объекта, соответствующему заданной колонке схемы, переданные значение value и значение для отображения displayValue.
column | Колонка схемы объекта. |
display |
Загружаемое значение для отображения. |
display |
Имя колонки, содержащей значение для отображения. |
value | Загружаемое значение колонки. |
Устанавливает заданной колонке схемы переданное значение value.
column | Колонка схемы объекта. |
value | Загружаемое значение колонки. |
value |
Имя колонки объекта. |
Устанавливает значение по умолчанию свойству с заданным именем.
column |
Имя колонки объекта. |
def |
Значение по умолчанию. |
Для всех свойств объекта устанавливает значения по умолчанию.
Устанавливает для заданного свойства объекта переданное значение типа System.IO.Stream.
value | Загружаемое значение колонки. |
value |
Имя колонки объекта. |
Обновляет запись объекта в базе данных.
validate |
Определяет необходимость проверки заполнения обязательных значений. Значение по умолчанию — true. |
Проверяет заполнение обязательных полей.
Осуществляет запись значения типа Entity в поток вывода с заданными именем.
could |
Разрешить преобразование для xml-сериализации. |
data |
Экземпляр класса Terrasoft.Common.DataWriter, предоставляющий методы последовательной записи значений в поток вывода. |
entity | Значение для записи типа Entity. |
property |
Имя объекта. |
Осуществляет запись данных в поток вывода с заданным именем.
data |
Экземпляр класса Terrasoft.Common.DataWriter, предоставляющий методы последовательной записи значений в поток вывода. |
property |
Имя свойства. |
Осуществляет запись в поток вывода для указанной либо текущей схемы объекта.
schema | Схема объекта. |
writer | Экземпляр класса Terrasoft.Common.DataWriter, предоставляющий методы последовательной записи значений в поток вывода. |
События
Обработчик события, возникающего после изменения значения колонки объекта.
Обработчик события получает аргумент типа EntityColumnAfterEventArgs.
Свойства EntityColumnAfterEventArgs предоставляющие сведения, относящиеся к событию:
- ColumnValueName;
- DisplayColumnValueName.
Обработчик события, возникающего перед изменением значения колонки объекта.
Обработчик события получает аргумент типа EntityColumnBeforeEventArgs.
Свойства EntityColumnBeforeEventArgs предоставляющие сведения, относящиеся к событию:
- ColumnStreamValue.
- ColumnValue.
- ColumnValueName.
- DisplayColumnValue.
- DisplayColumnValueName.
Обработчик события, возникающего после установки значений по умолчанию полей объекта.
Обработчик события, возникающего после удаления объекта.
Обработчик события получает аргумент типа EntityAfterEventArgs.
Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:
- ModifiedColumnValues.
- PrimaryColumnValue.
Обработчик события, возникающего перед удалением объекта.
Обработчик события получает аргумент типа EntityBeforeEventArgs.
Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:
- AdditionalCondition.
- IsCanceled.
- KeyValue.
Обработчик события, возникающего после вставки объекта.
Обработчик события получает аргумент типа EntityAfterEventArgs.
Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:
- ModifiedColumnValues.
- PrimaryColumnValue.
Обработчик события, возникающего перед вставкой объекта.
Обработчик события получает аргумент типа EntityBeforeEventArgs.
Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:
- AdditionalCondition.
- IsCanceled.
- KeyValue.
Обработчик события, возникающего после загрузки объекта.
Обработчик события получает аргумент типа EntityAfterLoadEventArgs.
Свойства EntityAfterLoadEventArgs предоставляющие сведения, относящиеся к событию:
- ColumnMap.
- DataSource.
Обработчик события, возникающего перед загрузкой объекта.
Обработчик события получает аргумент типа EntityBeforeLoadEventArgs.
Свойства EntityBeforeLoadEventArgs предоставляющие сведения, относящиеся к событию:
- ColumnMap.
- DataSource.
- IsCanceled.
Обработчик события, возникающего после сохранения объекта.
Обработчик события получает аргумент типа EntityAfterEventArgs.
Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:
- ModifiedColumnValues.
- PrimaryColumnValue.
Обработчик события, возникающего при ошибке сохранения объекта.
Обработчик события получает аргумент типа EntitySaveErrorEventArgs.
Свойства EntitySaveErrorEventArgs предоставляющие сведения, относящиеся к событию:
- Exception.
- IsHandled.
Обработчик события, возникающего перед сохранением объекта.
Обработчик события получает аргумент типа EntityBeforeEventArgs.
Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:
- AdditionalCondition.
- IsCanceled.
- KeyValue.
Обработчик события, возникающего после обновления объекта.
Обработчик события получает аргумент типа EntityAfterEventArgs.
Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:
- ModifiedColumnValues.
- PrimaryColumnValue.
Обработчик события, возникающего перед обновлением объекта.
Обработчик события получает аргумент типа EntityBeforeEventArgs.
Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:
- AdditionalCondition.
- IsCanceled.
- KeyValue.
Обработчик события, возникающего при проверке объекта.
Обработчик события получает аргумент типа EntityValidationEventArgs.
Свойства EntityValidationEventArgs предоставляющие сведения, относящиеся к событию:
- Messages.
Класс Terrasoft.Configuration.EntityMapper — это утилитный класс конфигурации, который находится в пакете FinAppLending продукта Lending. EntityMapper позволяет сопоставлять данные одной сущности (Entity) с другой по правилам, определенным в конфигурационном файле. Использование подхода сопоставления данных разных сущностей позволяет избежать появления однообразного кода.
В продукте Lending существует два объекта, содержащих одинаковые колонки. Это объекты Физ. лицо (Contact) и Анкета (AppForm). Также существует несколько деталей, относящихся к объекту Физ. лицо (Contact) и имеющих похожие детали, относящиеся к Анкета (AppForm). Очевидно, что при заполнении анкеты должна быть возможность по колонке Id объекта Физ. лицо (Contact) получить список всех его колонок и значений, а также список нужных деталей с их колонками и значениями, и сопоставить эти данные с данными, связанными с анкетой. После этого можно автоматически заполнить поля анкеты сопоставленными данными. Таким образом можно существенно уменьшить затраты на ручной ввод одинаковых данных.
Идея сопоставления данных разных сущностей реализована в следующих классах:
- EntityMapper — реализует логику сопоставления.
- EntityResult — определяет в каком виде вернется сопоставленная сущность.
- MapConfig — представляет набор правил для сопоставления.
- DetailMapConfig — используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
- RelationEntityMapConfig — содержит правила для сопоставления связанных сущностей.
- EntityFilterMap — представляет из себя фильтр для запроса в базу данных.
Класс EntityMapper
Пространство имен Terrasoft.Configuration.
Класс реализует логику сопоставления.
Методы
Возвращает сопоставленные данные для двух объектов Entity.
rec |
GUID записи в базе данных. |
config | Экземпляр класса MapConfig, представляющий из себя набор правил сопоставления. |
Получает из базы данных главную сущность и сопоставляет ее колонки и значения по правилам, указанным в объекте config.
record |
GUID записи в базе данных. |
config | Экземпляр класса MapConfig, представляющий из себя набор правил сопоставления. |
result | Словарь колонок и их значений уже сопоставленной сущности. |
Получает из базы данных связанные сущности и сопоставляет их с основными сущностями.
relations | Список правил для получения связанных записей. |
dictionary |
Словарь с колонками и их значениями. |
column |
Название родительской колонки. |
entity |
Объект, содержащий название и Id записи в базе. |
Класс EntityResult
Пространство имен Terrasoft.Configuration.
Класс определяет в каком виде вернется сопоставленная сущность.
Свойства
Словарь с названиями колонок основной сущности и их значениями.
Словарь названий деталей со списком их колонок и значений.
Класс MapConfig
Пространство имен Terrasoft.Configuration.
Класс представляет набор правил для сопоставления.
Свойства
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами для деталей.
Список названий деталей для очистки их значений.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс DetailMapConfig
Пространство имен Terrasoft.Configuration.
Класс используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
Свойства
Название детали (для обеспечения уникальности экземпляра детали).
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс RelationEntityMapConfig
Пространство имен Terrasoft.Configuration.
Класс содержит правила для сопоставления связанных сущностей.
Свойства
Название родительской колонки, при нахождении которой будет срабатывать логика получения и сопоставления данных по сущности.
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс EntityFilterMap
Пространство имен Terrasoft.Configuration.
Класс представляет из себя фильтр для запроса в базу данных.
Класс Terrasoft.Core.Entities.EntitySchemaQueryFunction реализует функцию выражения.
Идея функции выражения реализована в следующих классах:
- EntitySchemaQueryFunction — базовый класс функции выражения запроса к схеме объекта.
- EntitySchemaAggregationQueryFunction — реализует агрегирующую функцию выражения.
- EntitySchemaIsNullQueryFunction — заменяет значения null замещающим выражением.
- EntitySchemaCoalesceQueryFunction — возвращает первое выражение из списка аргументов, не равное null.
- EntitySchemaCaseNotNullQueryFunctionWhenItem — класс, описывающий выражение условия sql-оператора CASE.
- EntitySchemaCaseNotNullQueryFunctionWhenItems — коллекция выражений условий sql-оператора CASE.
- EntitySchemaStartOfCurrentHourQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : this(parentQuery, offset)
- EntitySchemaCaseNotNullQueryFunction — возвращает одно из множества возможных значений в зависимости от указанных условий.
- EntitySchemaSystemValueQueryFunction — возвращает выражение системного значения.
- EntitySchemaCurrentDateTimeQueryFunction — реализует функцию выражения текущей даты и времени.
- EntitySchemaBaseCurrentDateQueryFunction — базовый класс функции выражения для базовой даты.
- EntitySchemaCurrentDateQueryFunction — реализует функцию выражения текущей даты.
- EntitySchemaDateToCurrentYearQueryFunction — реализует функцию выражения даты начала текущей недели.
- EntitySchemaStartOfCurrentWeekQueryFunction — реализует функцию, которая конвертирует выражение даты в такую же дату текущего года.
- EntitySchemaStartOfCurrentMonthQueryFunction — реализует функцию выражения даты начала текущего месяца.
- EntitySchemaStartOfCurrentQuarterQueryFunction — реализует функцию выражения даты начала текущего квартала.
- EntitySchemaStartOfCurrentHalfYearQueryFunction — реализует функцию выражения даты начала текущего полугодия.
- EntitySchemaStartOfCurrentYearQueryFunction — реализует функцию выражения даты начала текущего года.
- EntitySchemaBaseCurrentDateTimeQueryFunction — базовый класс функции выражения базовых даты и времени.
- EntitySchemaStartOfCurrentHourQueryFunction — реализует функцию выражения начала текущего часа.
- EntitySchemaCurrentTimeQueryFunction — реализует функцию выражения текущего времени.
- EntitySchemaCurrentUserQueryFunction — реализует функцию выражения текущего пользователя.
- EntitySchemaCurrentUserContactQueryFunction — реализует функцию контакта текущего пользователя.
- EntitySchemaCurrentUserAccountQueryFunction — реализует функцию выражения контрагента текущего пользователя.
- EntitySchemaDatePartQueryFunction — реализует функцию запроса для части даты.
- EntitySchemaUpperQueryFunction — преобразовывает символы выражения аргумента к верхнему регистру.
- EntitySchemaCastQueryFunction — приводит выражение аргумента к заданному типу данных.
- EntitySchemaTrimQueryFunction — удаляет начальные и конечные пробелы из выражения.
- EntitySchemaLengthQueryFunction — возвращает длину выражения.
- EntitySchemaConcatQueryFunction — формирует строку, которая является результатом объединения строковых значений аргументов функции.
- EntitySchemaWindowQueryFunction — реализует функцию SQL окна.
Класс EntitySchemaQueryFunction
Пространство имен Terrasoft.Core.Entities.
Базовый класс функции выражения запроса к схеме объекта.
Методы
Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.
db |
Объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа. |
Возвращает тип данных возвращаемого функцией результата, используя переданный менеджер типов данных.
data |
Менеджер типов данных. |
Определяет, имеет ли возвращаемый функцией результат указанный тип данных.
data |
Тип данных. |
Возвращает заголовок функции выражения.
Возвращает коллекцию выражений аргументов функции.
Проверяет, имеет ли возвращаемый функцией результат указанный тип данных. В противном случае генерируется исключение.
data |
Тип данных. |
Класс EntitySchemaAggregationQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует агрегирующую функцию выражения.
Конструкторы
Инициализирует экземпляр EntitySchemaAggregationQueryFunction заданного типа агрегирующей функции для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует экземпляр EntitySchemaAggregationQueryFunction заданного типа агрегирующей функции для заданного запроса к схеме объекта.
aggregation |
Тип агрегирующей функции. |
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaAggregationQueryFunction для заданных типа агрегирующей функции, выражения и запроса к схеме объекта.
aggregation |
Тип агрегирующей функции. |
expression | Выражение запроса. |
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaAggregationQueryFunction, являющийся клоном переданного экземпляра агрегирующей функции выражения.
source | Экземпляр агрегирующей функции выражения, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Тип агрегирующей функции.
Область применения агрегирующей функции.
Выражение аргумента агрегирующей функции.
Методы
Выполняет сериализацию агрегирующей функции, используя заданный экземпляр Terrasoft.Common.DataWriter.
writer | Экземпляр Terrasoft.Common.DataWriter, с помощью которого выполняется сериализация. |
Возвращает выражение колонки запроса для агрегирующей функции, сформированное с учетом заданных прав доступа.
db |
Объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа. |
Возвращает коллекцию выражений аргументов агрегирующей функции.
Возвращает тип данных возвращаемого агрегирующей функцией результата, используя заданный менеджер типов данных.
data |
Менеджер типов данных. |
Определяет, имеет ли возвращаемый агрегирующей функцией результат указанный тип данных.
data |
Тип данных. |
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaAggregationQueryFunction.
Устанавливает для текущей агрегирующей функции область применения Ко всем значениям.
Устанавливает для текущей агрегирующей функции область применения К уникальным значениям.
Класс EntitySchemaIsNullQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс заменяет значения null замещающим выражением.
Конструкторы
Инициализирует экземпляр EntitySchemaIsNullQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaIsNullQueryFunction для заданных запроса к схеме объекта, проверяемого выражения и замещающего выражения.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
check |
Выражение, которое проверяется на равенство null. |
replacement |
Выражение, которое возвращается функцией, если checkExpression равно null. |
Инициализирует новый экземпляр EntitySchemaIsNullQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaIsNullQueryFunction, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Выражение аргумента функции, которое проверяется на равенство значению null.
Выражение аргумента функции, которое возвращается, если проверяемое выражение равно null.
Методы
Выполняет сериализацию функции выражения, используя переданный экземпляр DataWriter.
writer | Экземпляр DataWriter, с помощью которого выполняется сериализация функции выражения. |
Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.
db |
Объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа. |
Возвращает коллекцию выражений аргументов функции.
Возвращает тип данных возвращаемого функцией результата, используя переданный менеджер типов данных.
data |
Менеджер типов данных. |
Класс EntitySchemaCoalesceQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс возвращает первое выражение из списка аргументов, не равное null.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCoalesceQueryFunction для заданного запроса к схеме объекта.
aggregation |
Тип агрегирующей функции. |
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCoalesceQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCoalesceQueryFunction, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Коллекция выражений аргументов функции.
Признак, определяющий наличие хотя бы одного элемента в коллекции выражений аргументов функции.
Методы
Определяет, имеет ли возвращаемый функцией результат указанный тип данных.
data |
Тип данных. |
Класс EntitySchemaCaseNotNullQueryFunctionWhenItem
Пространство имен Terrasoft.Core.Entities.
Класс, описывающий выражение условия sql-оператора CASE.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem.
Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem для заданных выражений предложений WHEN и THEN.
when |
Выражение предложения WHEN условия. |
then |
Выражение предложения THEN условия. |
Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem, являющийся клоном переданной функции.
source | Функция EntitySchemaCaseNotNullQueryFunctionWhenItem, клон которой создается. |
Класс EntitySchemaCaseNotNullQueryFunctionWhenItems
Пространство имен Terrasoft.Core.Entities.
Класс реализует коллекцию выражений условий sql-оператора CASE.
Конструкторы
Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItems.
Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItems, являющийся клоном клоном переданной коллекции условий.
source | Коллекция условий, клон которой создается. |
Класс EntitySchemaCaseNotNullQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс возвращает одно из множества возможных значений в зависимости от указанных условий.
Конструкторы
Инициализирует новый экземпляр CurrentDateTimeQueryFunction.
Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCaseNotNullQueryFunction, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Коллекция условий функции выражения.
Признак, имеет ли функция хотя бы одно условие.
Выражение предложения ELSE.
Методы
Определяет для текущей функции выражения заданный псевдоним в результирующем sql-запросе.
query |
Псевдоним, определяемый для текущей функции. |
Класс EntitySchemaSystemValueQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс возвращает выражение системного значения.
Класс EntitySchemaCurrentDateTimeQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения текущей даты и времени.
Конструкторы
Инициализирует экземпляр EntitySchemaCurrentDateTimeQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует экземпляр EntitySchemaCurrentDateTimeQueryFunction, являющийся клоном переданной функции.
source | Экземпляр функции EntitySchemaCurrentDateTimeQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaCurrentDateTimeQueryFunction.
Класс EntitySchemaBaseCurrentDateQueryFunction
Пространство имен Terrasoft.Core.Entities.
Базовый класс функции выражения для базовой даты.
Класс EntitySchemaCurrentDateQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения текущей даты.
Конструкторы
Инициализирует экземпляр EntitySchemaCurrentDateQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса. |
Инициализирует экземпляр EntitySchemaCurrentDateQueryFunction, являющийся клоном переданной функции.
source | Экземпляр функции EntitySchemaCurrentDateQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaCurrentDateQueryFunction.
Класс EntitySchemaDateToCurrentYearQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию, которая конвертирует выражение даты в такую же дату текущего года.
Конструкторы
Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expression | Выражение запроса. |
Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaDateToCurrentYearQueryFunction, клон которой создается. |
Класс EntitySchemaStartOfCurrentWeekQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения текущей даты.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentWeekQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса. |
Инициализирует экземпляр EntitySchemaStartOfCurrentWeekQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentWeekQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentWeekQueryFunction.
Класс EntitySchemaStartOfCurrentMonthQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения даты начала текущего месяца.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentMonthQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса. |
Инициализирует экземпляр EntitySchemaStartOfCurrentMonthQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentMonthQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentMonthQueryFunction.
Класс EntitySchemaStartOfCurrentQuarterQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения даты начала текущего месяца.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentQuarterQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса |
Инициализирует экземпляр EntitySchemaStartOfCurrentQuarterQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentQuarterQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentQuarterQueryFunction.
Класс EntitySchemaStartOfCurrentHalfYearQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения даты начала текущего полугодия.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentHalfYearQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса. |
Инициализирует экземпляр EntitySchemaStartOfCurrentHalfYearQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentHalfYearQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentHalfYearQueryFunction.
Класс EntitySchemaStartOfCurrentYearQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения даты начала текущего года.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentYearQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
offset | Смещение в днях относительно контрольной даты. Значение по умолчанию - 0. |
expression | Выражение запроса. |
Инициализирует экземпляр EntitySchemaStartOfCurrentYearQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentYearQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentHalfYearQueryFunction.
Класс EntitySchemaBaseCurrentDateTimeQueryFunction
Пространство имен Terrasoft.Core.Entities.
Базовый класс функции выражения базовых даты и времени.
Класс EntitySchemaStartOfCurrentHourQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения начала текущего часа.
Конструкторы
Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, который является частью parentQuery и указан offset относительно базовой даты.
parent |
Экземпляр EntitySchemaQuery. |
offset | Смещение в часах относительно базовой даты. |
Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, который является частью parentQuery, имеет указанные аргументы expression и offset относительно базовой даты.
parent |
Экземпляр EntitySchemaQuery. |
expression | Выражение аргумента функции. |
offset | Смещение в часах относительно базовой даты. |
Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, являющийся клоном переданной функции выражения.
source | Экземпляр функции EntitySchemaStartOfCurrentHourQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaStartOfCurrentHourQueryFunction.
Класс EntitySchemaCurrentTimeQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения текущего времени.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCurrentTimeQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCurrentTimeQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCurrentTimeQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaCurrentTimeQueryFunction.
Класс EntitySchemaCurrentUserQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения текущего пользователя.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCurrentUserQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCurrentUserQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCurrentUserQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaCurrentUserQueryFunction.
Класс EntitySchemaCurrentUserContactQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения контакта текущего пользователя.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCurrentUserContactQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCurrentUserContactQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCurrentUserContactQueryFunction, клон которой создается. |
Методы
Возвращает заголовок функции выражения.
Создает клон текущего экземпляра EntitySchemaCurrentUserContactQueryFunction.
Класс EntitySchemaCurrentUserAccountQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию выражения контрагента текущего пользователя.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCurrentUserAccountQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaCurrentUserAccountQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCurrentUserAccountQueryFunction, клон которой создается. |
Класс EntitySchemaDatePartQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию запроса для части даты.
Конструкторы
Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction для заданного запроса к схеме объекта.
parent |
Экземпляр EntitySchemaQuery. |
Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction, который является частью parentQuery с указанной частью даты interval для запроса к схеме сущности и выражению запроса expression.
parent |
Экземпляр EntitySchemaQuery. |
interval | Часть даты. |
expression | Выражение запроса. |
Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaDatePartQueryFunction, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Часть даты, возвращаемая функцией.
Выражение аргумента функции.
Методы
Выполняет сериализацию функции, используя заданный экземпляр Terrasoft.Common.DataWriter.
writer | Экземпляр Terrasoft.Common.DataWriter, с помощью которого выполняется сериализация. |
Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.
db |
Объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа. |
Возвращает тип данных возвращаемого функцией результата, используя переданный менеджер типов данных.
data |
Менеджер типов данных. |
Определяет, имеет ли возвращаемый функцией результат указанный тип данных.
data |
Тип данных. |
Возвращает заголовок функции выражения.
Возвращает коллекцию выражений аргументов функции.
Создает клон текущего экземпляра EntitySchemaUpperQueryFunction.
Класс EntitySchemaUpperQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс преобразовывает символы выражения аргумента к верхнему регистру.
Конструкторы
Инициализирует новый экземпляр EntitySchemaUpperQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaUpperQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expression | Выражение запроса. |
Инициализирует новый экземпляр EntitySchemaUpperQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaUpperQueryFunction, клон которой создается. |
Класс EntitySchemaCastQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс приводит выражение аргумента к заданному типу данных.
Конструкторы
Инициализирует новый экземпляр EntitySchemaCastQueryFunction для заданного запроса к схеме объекта с указанным целевым типом данных.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
cast |
Целевой тип данных. |
Инициализирует новый экземпляр EntitySchemaCastQueryFunction с заданными выражением и целевым типом данных.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expression | Выражение запроса. |
cast |
Целевой тип данных. |
Инициализирует новый экземпляр EntitySchemaCastQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaCastQueryFunction, клон которой создается. |
Класс EntitySchemaTrimQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс удаляет начальные и конечные пробелы из выражения.
Конструкторы
Инициализирует новый экземпляр EntitySchemaTrimQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaTrimQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expression | Выражение запроса. |
Инициализирует новый экземпляр EntitySchemaTrimQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaTrimQueryFunction, клон которой создается. |
Класс EntitySchemaLengthQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс возвращает длину выражения.
Конструкторы
Инициализирует новый экземпляр EntitySchemaLengthQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaLengthQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expression | Выражение запроса. |
Инициализирует новый экземпляр EntitySchemaLengthQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaLengthQueryFunction, клон которой создается. |
Класс EntitySchemaConcatQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс формирует строку, которая является результатом объединения строковых значений аргументов функции.
Конструкторы
Инициализирует новый экземпляр EntitySchemaConcatQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaConcatQueryFunction для заданных массива выражений и запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
expressions | Массив выражений. |
Инициализирует новый экземпляр EntitySchemaConcatQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaConcatQueryFunction, клон которой создается. |
Свойства
Псевдоним функции в sql-запросе.
Коллекция выражений аргументов функции.
Признак, определяющий наличие хотя бы одного элемента в коллекции выражений аргументов функции.
Класс EntitySchemaWindowQueryFunction
Пространство имен Terrasoft.Core.Entities.
Класс реализует функцию SQL окна.
Конструкторы
Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.
parent |
Запрос к схеме объекта, которому принадлежит функция. |
Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.
function | Вложенная функция запроса. |
esq | Запрос к схеме объекта. |
Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.
function | Вложенная функция запроса. |
parent |
Запрос к схеме объекта, которому принадлежит функция. |
partition |
Выражение для разделения запроса. |
order |
Выражение для сортировки запроса. |
Инициализирует новый экземпляр EntitySchemaWindowQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaQueryFunction, клон которой создается. |
Инициализирует новый экземпляр EntitySchemaWindowQueryFunction, являющийся клоном переданной функции.
source | Функция EntitySchemaWindowQueryFunction, клон которой создается. |
Пространство имен Terrasoft.Core.Entities.
Класс Terrasoft.Core.Entities.EntitySchemaQueryOptions предназначен для настроек запроса к схеме объекта.
Конструкторы
Инициализирует экземпляр класса. В конструкторе свойству PageableRowCount по умолчанию устанавливается значение 14.
Свойства
Количество записей страницы результирующего набора данных, возвращаемого запросом.
Направление постраничного вывода.
Prior | Предыдущая страница. |
First | Первая страница. |
Current | Текущая страница. |
Next | Следующая страница. |
Значения условий постраничного вывода.
Максимальный уровень вложенности иерархического запроса.
Имя колонки, которая используется для построения иерархического запроса.
Начальное значение иерархической колонки, от которого будет строиться иерархия.