Доступ к данным через ORM

PDF
Сложный

Доступ к базе данных предоставляет группа классов серверного ядра приложения, перечисленные ниже. С их помощью можно выполнять весь набор CRUD-операций, учитывать права доступа текущего пользователя, помещать полученные данные в хранилища кэша.

Получение данных их базы 

Select 

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

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

 EntitySchemaQuery 

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

Класс EntitySchemaQuery реализует механизм работы с хранилищем (кэшем Creatio либо произвольным хранилищем, определенным пользователем). При выполнении запроса EntitySchemaQuery данные, полученные из базы данных на сервере, помещаются в кэш. В качестве кэша запроса может выступать произвольное хранилище, которое реализует интерфейс Terrasoft.Core.Store.ICacheStore. По умолчанию в качестве кэша запроса EntitySchemaQuery выступает кэш Creatio уровня сессии (данные доступны только в сессии текущего пользователя) с локальным хранением данных.

Для запросов EntitySchemaQuery можно определить дополнительные настройки, которые задают параметры для постраничного вывода результатов выполнения запроса, а также параметры построения иерархического запроса. Для этого предназначен класс Terrasoft.Core.Entities.EntitySchemaQueryOptions.

Результатом выполнения запроса EntitySchemaQuery является экземпляр Terrasoft.Nui.ServiceModel.DataContract.EntityCollection (коллекция экземпляров класса Terrasoft.Core.Entities.Entity). Каждый экземпляр Entity в коллекции представляет собой строку набора данных, возвращаемого запросом.

Особенности EntitySchemaQuery 

1. Поддержка прав доступа 

Запрос на выборку данных EntitySchemaQuery строится таким образом, чтобы учитывать права текущего пользователя. В результирующий набор попадут только те данные, к которым текущий пользователь имеет доступ согласно его правам. Дополнительно для EntitySchemaQuery можно регулировать условия наложения прав на связанные таблицы, присутствующие в запросе (которые присоединяются к запросу предложением JOIN). Эти условия определяются значением свойства JoinRightState экземпляра EntitySchemaQuery.

2. Механизм кеширования 

В EntitySchemaQuery реализован механизм работы с хранилищем (кэшем Creatio либо произвольным хранилищем, определенным пользователем). При выполнении запроса EntitySchemaQuery данные, полученные из базы данных на сервере, помещаются в кэш. В качестве кэша запроса может выступать произвольное хранилище, которое реализует интерфейс ICacheStore. По умолчанию в качестве кэша запроса EntitySchemaQuery выступает кэш Creatio уровня сессии (данные доступны только в сессии текущего пользователя) с локальным хранением данных. Кэш запроса определяется свойством Cache экземпляра EntitySchemaQuery. С помощью свойства CacheItemName задается ключ доступа к кэшу запроса (пример 4).

3. Дополнительные настройки запроса 

Для запросов EntitySchemaQuery можно определить дополнительные настройки, которые задают параметры для постраничного вывода результатов выполнения запроса, а также параметры построения иерархического запроса. Для этого предназначен класс EntitySchemaQueryOptions.

Свойства класса EntitySchemaQueryOptions:

  • HierarchicalColumnName — имя колонки, использующейся для построения иерархического запроса;
  • HierarchicalColumnValue — начальное значение иерархической колонки, от которого будет строиться иерархия;
  • HierarchicalMaxDepth — максимальный уровень вложенности иерархического запроса;
  • PageableConditionValues — значения условий постраничного вывода;
  • PageableDirection — направление постраничного вывода;
  • PageableRowCount — количество записей страницы результирующего набора данных, возвращаемого запросом.

Один и тот же экземпляр EntitySchemaQueryOptions можно использовать для получения результатов выполнения различных запросов, передавая его в качестве параметра методу GetEntityCollection() соответствующего запроса (Примеры EntitySchemaQuery).

Добавление данных 

Insert 

Класс Terrasoft.Core.DB.Insert предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения INSERT. В результате выполнения запроса возвращается количество задействованных запросом записей.

InsertSelect 

Класс Terrasoft.Core.DB.InsertSelect предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. При этом в качестве источника добавляемых данных используется экземпляр класса Terrasoft.Core.DB.Select. В результате создания и конфигурирования экземпляра Terrasoft.Core.DB.InsertSelect будет построен запрос базу данных приложения в виде SQL-выражения INSERT INTO SELECT.

При работе с классом InsertSelect на добавленные записи не применяются права доступа по умолчанию. К таким записям не применены вообще никакие права приложения (по операциям на объект, по записям, по колонкам). Пользовательское соединение используется только для доступа к таблице базы данных.

После выполнения запроса InsertSelect в базу данных будет добавлено столько записей, сколько вернется в его подзапросе Select.

Изменение данных 

Класс Terrasoft.Core.DB.Update предназначен для построения запросов на изменение записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения UPDATE.

Удаление данных 

Класс Terrasoft.Core.DB.Delete предназначен для построения запросов на удаление записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения DELETE.

Работа с сущностью базы данных 

Класс Terrasoft.Core.Entities.Entity предназначен для доступа к объекту, который представляет собой запись в таблице базы данных. Он также может использоваться для добавления, изменения и удаления определенных записей.

Корневая схема 

Корневая схема — это схема (таблица в базе данных), относительно которой выполняется построение путей ко всем колонкам в запросе, в том числе к колонкам присоединяемых таблиц.

При построении путей к колонкам применяется принцип связей через справочные поля. Имя произвольной колонки, добавляемой в запрос, можно построить в виде цепочки взаимосвязанных звеньев, каждое из которых представляет собой "контекст" конкретной схемы, которая связывается с предыдущей по внешнему ключу.

В общем случае формат построения имени произвольной колонки из схемы N можно представить в следующем виде:

[Контекст схемы 1].[...].[Контекст схемы N].[Имя_колонки]

Многопоточность при работе с базой данных 

Использование нескольких потоков при работе с базой данных через UserConnection может привести к проблемам синхронизации старта и коммита транзакций.

Важно. Проблема возникает при работе с базой данных, даже если DBExecutor не используется напрямую, а используется, например, через EntitySchemaQuery.

Важно. Поскольку для работы с базой данных используются неуправляемые (unmanaged) ресурсы, то создание экземпляра DBExecutor необходимо оборачивать в оператор using. Или же явно вызывать метод Dispose() для освобождения ресурсов. Подробнее об использовании оператора using можно можно узнать из документации.

Пример неправильного использования 

Ниже приведен фрагмент исходного кода, в котором DBExecutor используется неправильно. Нельзя выполнять вызов методов экземпляра DBExecutor в параллельных потоках.

// Создание параллельного потока.
var task = new Task(() => {
    // Использование экземпляра DBExecutor в параллельном потоке.
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
        dbExecutor.StartTransaction();
        //...
        dbExecutor.CommitTransaction();
    }
});
// Запуск асинхронной задачи в параллельном потоке.
// Выполнение программы в основном потоке продолжается дальше.
task.Start();
//...
var select = (Select)new Select(UserConnection)
        .Column("Id")
        .From("Contact")
        .Where("Name")
        .IsEqual(Column.Parameter("Supervisor"));
// Использование экземпляра DBExecutor в основном потоке приведет к возникновению ошибки,
// т.к. экземпляр DBExecutor уже используется в параллельном потоке.
using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
    using (IDataReader dataReader = select.ExecuteReader(dbExecutor)) {
        while (dataReader.Read()) {
            //...
        }
    }
}

Пример правильного использования 

Ниже приведен фрагмент исходного кода, в котором DBExecutor используется корректно. Вызов методов экземпляра DBExecutor производится последовательно, в одном потоке.

// Первое использование экземпляра DBExecutor в основном потоке.
using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
    dbExecutor.StartTransaction();
    //...
    dbExecutor.CommitTransaction();
}
//...
var select = (Select)new Select(UserConnection)
        .Column("Id")
        .From("Contact")
        .Where("Name")
        .IsEqual(Column.Parameter("Supervisor"));
// Повторное использование экземпляра DBExecutor в основном потоке.
using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
    using (IDataReader dataReader = select.ExecuteReader(dbExecutor)) {
        while (dataReader.Read()) {
            //...
        }
    }
}

Работа с PostgreSQL 

Общие рекомендации:

  1. Не рекомендуется использовать для создания триггеров, представлений, функций команду CREATE OR REPLACE. Вместо этого используйте конструкцию DROP … IF EXISTS (при необходимости можно использовать команду CASCADE), а затем CREATE OR REPLACE.
  2. Вместо схемы "dbo" используйте "public".
  3. Учитывайте регистрозависимость системных имен, используйте кавычки ("") для имен таблиц, колонок и т.д..
  4. Вместо типа BIT в MS SQL используйте в Postgres тип BOOL. Для проверки значения поля типа BOOL необязательно использовать конструкцию WHERE "boolColumn" = true, достаточно WHERE "boolColumn" или WHERE NOT "boolColumn".
  5. В Postgres можно использовать сокращенный вид явного преобразования ::TEXT.
  6. В Postgres при сравнении строк учитывается регистр. Для выполнения регистронезависимого сравнения можно использовать ключевое слово iLIKE. Однако учитывайте, что сравнение при этом значительно более медленное, чем при использовании комбинации UPPER+LIKE. Кроме того у комбинации UPPER+LIKE менее строгие правила применимости индексов, чем у iLIKE.
  7. Если нет какого-либо неявного приведения типов, то его можно создать с помощью команды CREATE CAST. Подробнее об этом читайте в документации PostgreSQL.
  8. В Postgres нет встроенной функции NESTLEVEL в рекурсивных процедурах. Для хранения текущего уровня рекурсии следует создавать специальный параметр процедуры.
  9. Вместо типа SYSNAME используйте тип NAME.
  10. Вместо пустых INSTEAD-триггеров создавайте правила, например:
    CREATE RULE RU_VwAdministrativeObjects AS
    ON UPDATE TO "VwAdministrativeObjects"
    DO INSTEAD NOTHING;
    
  11. При выполнении команды UPDATE в Postgres не работает неявное преобразование типа INT в тип BOOL, даже при наличии соответствующего оператора CAST. Следует явно привести INT -значение к типу BOOL.
  12. Способы форматирования строковых литералов подробно описаны на сайте документации PostgreSQL:
  13. Вместо @@ROWCOUNT используйте следующую конструкцию:
    DECLARE rowsCount BIGINT = 0;
    GET DIAGNOSTICS rowsCount = row_count;
    
  14. Вместо конструкции в MS SQL
    (CASE WHEN EXISTS (
      SELECT 1
      FROM [SysSSPEntitySchemaAccessList]
      WHERE [SysSSPEntitySchemaAccessList].[EntitySchemaUId] = [BaseSchemas].[UId]
      )
    THEN 1 ELSE 0 END) AS [IsInSSPEntitySchemaAccessList]
    
    в PostgreSql следует использовать конструкцию
    EXISTS (
      SELECT 1
      FROM "SysSSPEntitySchemaAccessList"
      WHERE "EntitySchemaUId" = BaseSchema."UId"
     ) "IsInSSPEntitySchemaAccessList"
    
    Полученное в результате запроса поле будет иметь тип BOOL.

Соответствие типов данных 

Таблица соответствия типов данных Creatio, MS SQL и PostgreSQL
Тип данных в дизайнере объекта Creatio Тип данных в MS SQL Тип данных в PostgreSQL
BLOB VARBINARY BYTEA
Boolean BIT BOOLEAN
Color NVARCHAR CHARACTER VARYING
CRC NVARCHAR CHARACTER VARYING
Currency DECIMAL NUMERIC
Date DATE DATE
Date/Time DATETIME2 TIMESTAMP WITHOUT TIME ZONE
Decimal (0.00000001) DECIMAL NUMERIC
Decimal (0.0001) DECIMAL NUMERIC
Decimal (0.001) DECIMAL NUMERIC
Decimal (0.01) DECIMAL NUMERIC
Decimal (0.1) DECIMAL NUMERIC
Encrypted string NVARCHAR CHARACTER VARYING
File VARBINARY BYTEA
Image VARBINARY BYTEA
Image Link UNIQUEIDENTIFIER UUID
Integer INTEGER INTEGER
Lookup UNIQUEIDENTIFIER UUID
Text (250 characters) NVARCHAR(250) CHARACTER VARYING
Text (50 characters) NVARCHAR(50) CHARACTER VARYING
Text (500 characters) NVARCHAR(500) CHARACTER VARYING
Time TIME TIME WITHOUT TIME ZONE
Unique identifier UNIQUEIDENTIFIER UUID
Unlimited length text NVARCHAR(MAX) TEXT

Привязка SQL-сценария к пакету 

Если в пакете привязаны SQL-сценарии, например, для MS SQL, то для работы с Postgres создайте скрипт, который выполняет те же функции, но использует синтаксис PostgreSQL. Для этого на вкладке SQL-сценарии добавьте скрипт с типом СУБД PostgreSql.

Работа с сущностью базы данных
Сложный

Примеры использования класса Entity для работы с базой данных 

public string GetEntityColumnData()
{
    var result = "";
    // Создание запроса к схеме City, добавление в запрос колонки Name.
    var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");
    var colName = esqResult.AddColumn("Name");
    // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела.
    var entity = esqResult.GetEntity(UserConnection, new Guid("100B6B13-E8BB-DF11-B00F-001D60E938C6"));
    // Получение значения колонки объекта.
    result += entity.GetColumnValue(colName.Name).ToString();
    return result;
}
public IEnumerable<string> GetEntityColumns()
{
    // Создание объекта строки данных схемы City (по идентификатору схемы, полученному из базы данных).
    var entity = new Entity(UserConnection, new Guid("5CA90B6A-93E7-4448-BEFE-AB5166EC2CFE"));
    // Получение из базы данных объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела.
    entity.FetchFromDB(new Guid("100B6B13-E8BB-DF11-B00F-001D60E938C6"),true);
    // Получение коллекции имен колонок объекта.
    var result = entity.GetColumnValueNames();
    return result;
}
public bool DeleteEntity()
{
    // Создание запроса к схеме Order, добавление в запрос всех колонок схемы.
    var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Order");
    esqResult.AddAllSchemaColumns();
    // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела.
    var entity = esqResult.GetEntity(UserConnection, new Guid("e3bfa32f-3fe9-4bae-9332-16c162c51e0d"));
    // Удаление объекта из базы данных.
    entity.Delete();
    // Проверка, существует ли в базе данных объект с заданным идентификатором.
    var result = entity.ExistInDB(new Guid("e3bfa32f-3fe9-4bae-9332-16c162c51e0d"));
    return result;
}
public bool UpdateEntity()
{
    // Создание запроса к схеме Order, добавление в запрос всех колонок схемы.
    var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Order");
    esqResult.AddAllSchemaColumns();
    // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела.
    var entity = esqResult.GetEntity(UserConnection, new Guid("58be5223-715d-4b16-a5c4-e3d4ec0412d9"));
    // Создание объекта строки данных схемы OrderStatus.
    var statusSchema = UserConnection.EntitySchemaManager.GetInstanceByName("OrderStatus");
    var newStatus = statusSchema.CreateEntity(UserConnection);
    // Получение из базы данных объекта c заданным названием.
    newStatus.FetchFromDB("Name", "4. Completed");
    // Присваивает колонке StatusId новое значение.
    entity.SetColumnValue("StatusId", newStatus.GetTypedColumnValue<Guid>("Id"));
    // Сохранение измененного объекта в базе данных.
    var result = entity.Save();
    return result;
}
public bool InsertEntity(string city, string country)
{
    city = city ?? "unknown city";
    country = country ?? "unknown country";
    var citySchema = UserConnection.EntitySchemaManager.GetInstanceByName("City");
    var entity = citySchema.CreateEntity(UserConnection);
    entity.FetchFromDB("Name", city);
    // Устанавливает для колонок объекта значения по умолчанию.
    entity.SetDefColumnValues();
    var contryEntity = new Entity(UserConnection, new Guid("09FCE1F8-515C-4296-95CD-8CD93F79A6CF"));
    contryEntity.FetchFromDB("Name", country);
    // Присваивает колонке Name переданное название города.
    entity.SetColumnValue("Name", city);
    // Присваивает колонке CountryId UId переданной страны.
    entity.SetColumnValue("CountryId", contryEntity.GetTypedColumnValue<Guid>("Id"));
    var result = entity.Save();
    return result;
}
Получить данные из базы
Сложный
Метод обработки результатов запроса, используемый в примерах
private string CreateJson(IDataReader dataReader)
{
    var list = new List<dynamic>();
    var cnt = dataReader.FieldCount;
    var fields = new List<string>();
    for (int i = 0; i < cnt; i++)
    {
        fields.Add(dataReader.GetName(i));
    }
    while (dataReader.Read())
    {
        dynamic exo = new System.Dynamic.ExpandoObject();
        foreach (var field in fields)
        {
            ((IDictionary<String, Object>)exo).Add(field, dataReader.GetColumnValue(field));
        }
        list.Add(exo);
    }
    return JsonConvert.SerializeObject(list);
}

Примеры 

public string GetSqlTextExample()
{
    var result = "";
    var select = new Select(UserConnection)
            .Column(Column.Asterisk())
        .From("Contact");
    result = select.GetSqlText();
    return result;
}
public string SelectColumns(string tableName, int top)
{
    top = top > 0 ? top : 1;
    var result = "{}";
    var select = new Select(UserConnection)
        .Top(top)
        .Column(Column.Asterisk())
        .From(tableName);
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectContactsYoungerThan(string birthYear)
{
    var result = "{}";
    var year = DateTime.ParseExact(birthYear, "yyyy", CultureInfo.InvariantCulture);
    var select = new Select(UserConnection)
            .Column("Id")
            .Column("Name")
            .Column("BirthDate")
        .From("Contact")
        .Where("BirthDate").IsGreater(Column.Parameter(year))
            .Or("BirthDate").IsNull()
        .OrderByDesc("BirthDate")
         as Select;
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectContactsYoungerThanAndHasAccountId(string birthYear)
{
    var result = "{}";
    var year = DateTime.ParseExact(birthYear, "yyyy", CultureInfo.InvariantCulture);
    var select = new Select(UserConnection)
            .Column("Id")
            .Column("Name")
            .Column("BirthDate")
        .From("Contact")
        .Where()
        .OpenBlock("BirthDate").IsGreater(Column.Parameter(year))
            .Or("BirthDate").IsNull()
        .CloseBlock()
        .And("AccountId").Not().IsNull()
        .OrderByDesc("BirthDate")
         as Select;
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectContactsJoinAccount()
{
    var result = "{}";
    var select = new Select(UserConnection)
            .Column("Contact", "Id").As("ContactId")
            .Column("Contact", "Name").As("ContactName")
            .Column("Account", "Id").As("AccountId")
            .Column("Account", "Name").As("AccountName")
        .From("Contact")
        .Join(JoinType.Inner, "Account")
            .On("Contact", "Id").IsEqual("Account", "PrimaryContactId")
         as Select;
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectAccountPrimaryContacts()
{
    var result = "{}";
    var select = new Select(UserConnection)
            .Column("Id")
            .Column("Name")
        .From("Contact").As("C")
        .Where()
            .Exists(new Select(UserConnection)
                            .Column("A", "PrimaryContactId")
                        .From("Account").As("A")
                        .Where("A", "PrimaryContactId").IsEqual("C", "Id"))
         as Select;
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectCountriesWithCitiesCount(int count)
{
    var result = "{}";
    var select = new Select(UserConnection)
            .Column(Func.Count("City", "Id")).As("CitiesCount")
            .Column("Country", "Name").As("CountryName")
        .From("City")
        .Join(JoinType.Inner, "Country")
            .On("City", "CountryId").IsEqual("Country", "Id")
        .GroupBy("Country", "Name")
        .Having(Func.Count("City", "Id")).IsGreater(Column.Parameter(count))
        .OrderByDesc("CitiesCount")
         as Select;
    using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
    {
        using (IDataReader dataReader = select.ExecuteReader(dbExecutor))
        {
            result = CreateJson(dataReader);
        }
    }
    return result;
}
public string SelectCountryIdByCityName(string CityName)
{
    var result = "";
    var select = new Select(UserConnection)
            .Column("CountryId")
        .From("City")
        .Where("Name").IsEqual(Column.Parameter(CityName)) as Select;
    result = select.ExecuteScalar<Guid>().ToString();
    return result;
}
Примеры построения путей к колонкам
Сложный

Для всех приведенных ниже примеров в качестве корневой схемы выступает схема City.

Пример 1 

В этом случае имя колонки указывается как Имя колонки в корневой схеме.

  • Колонка с названием города
  • Имя колонки: Name
// Создание экземпляра запроса EntitySchemaQuery с корневой схемой "City".
var esqQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");

// Добавление в запрос колонки с именем города.
esqQuery.AddColumn("Name");

// Получение текста результирующего sql-запроса.
string esqSqlText = esqQuery.GetSelectQuery(UserConnection).GetSqlText(); 
SELECT
[City].[Name] [Name]
FROM
[dbo].[City] [City]

Пример 2 

Имя колонки настраивается по принципу Имя колонки-справочника.Имя колонки справочной схемы.

При этом в результирующем запросе к корневой схеме City оператором JOIN (по умолчанию — LEFT OUTER JOIN) будет присоединена справочная схема Country. Условие присоединения (условие ON оператора JOIN) формируется по следующему принципу:

Имя присоединяемой схемы.Id = Имя корневой схемы.Имя справочной колонки, которая ссылается на присоединяемую схему + Id

  • Колонка с названием страны, которой принадлежит город
  • Имя колонки: Country.Name
// Создание экземпляра запроса EntitySchemaQuery с корневой схемой "City".
var esqQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");

// Добавление в запрос колонки с наименованием страны, которой принадлежит город.
esqQuery.AddColumn("Country.Name");

// Получение текста результирующего sql-запроса.
string esqSqlText = esqQuery.GetSelectQuery(UserConnection).GetSqlText();  
SELECT
[Country].[Name] [Country.Name]
FROM
[dbo].[City] [City]
LEFT OUTER JOIN [dbo].[Country] [Country] ON ([Country].[Id] = [City].[CountryId])
  • Имя контакта, который добавил страну конкретного города
  • Имя колонки: Country.CreatedBy.Name
// Создание экземпляра запроса EntitySchemaQuery с корневой схемой "City".
var esqQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");

// Добавление в запрос колонки с именем контакта, который добавил страну конкретного города.
esqQuery.AddColumn("Country.CreatedBy.Name");

// Получение текста результирующего sql-запроса.
string esqSqlText = esqQuery.GetSelectQuery(UserConnection).GetSqlText();     
SELECT
[CreatedBy].[Name] [CreatedBy.Name]
FROM
[dbo].[City] [City]
LEFT OUTER JOIN [dbo].[Country] [Country] ON ([Country].[Id] = [City].[CountryId])
LEFT OUTER JOIN [dbo].[Contact] [CreatedBy] ON ([CreatedBy].[Id] = [Country].[CreatedById])

Пример 3 

Имя колонки строится по принципу Имя_присоединяемой_схемы:Имя_колонки_для_связи_присоединяемой_схемы:Имя_колонки_для_связи_текущей_схемы.

Данный способ построения колонки подразумевает применение обратных связей, т.е. связи справочной колонки присоединяемой сущности с какой-либо колонкой основной сущности.

Если в качестве колонки для связи у текущей схемы выступает колонка Id, то в этом случае ее можно опустить, то есть имя колонки будет выглядеть следующим образом:

Имя_присоединяемой_схемы:Имя_колонки_для_связи_присоединяемой_схемы.

  • Колонка с именем контакта, в карточке которого указан выбираемый запросом город
  • Имя колонки: [Contact:City:Id].Name
// Создание экземпляра запроса EntitySchemaQuery с корневой схемой "City".
var esqQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");

//  Добавление в запрос колонки с именем контакта, в карточке которого указан данный город.
esqQuery.AddColumn("[Contact:City:Id].Name");

// Получение текста результирующего sql-запроса.
string esqSqlText = esqQuery.GetSelectQuery(UserConnection).GetSqlText();  
SELECT
[Contact].[Name] [Contact.Name]
FROM
[dbo].[City] [City]
LEFT OUTER JOIN [dbo].[Contact] [Contact] ON ([Contact].[CityId] = [City].[Id])

На заметку. Обратите внимание, что при построении имени колонки с применением обратных связей результирующий набор данных может содержать значительно больше записей, чем в таблице основной сущности. В примере выше в БД может быть десяток городов и тысяча контактов, в карточках которых указан один из считываемых городов.

В примере ниже рассматривается альтернативный вариант построения имени для колонки с именем контакта, добавившего страну конкретного города (см. пример 2).

  • Колонка с именем контакта, добавившего страну конкретного города
  • Имя колонки: Country.[Contact:Id:CreatedBy].Name
// Создание экземпляра запроса EntitySchemaQuery с корневой схемой "City".
var esqQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");

// Добавление в запрос колонки с именем контакта, добавившего страну конкретного города.
esqQuery.AddColumn("Country.[Contact:Id:CreatedBy].Name");

// Получение текста результирующего sql-запроса.
string esqSqlText = esqQuery.GetSelectQuery(UserConnection).GetSqlText();  
SELECT
[Contact].[Name] [Contact.Name]
FROM
[dbo].[City] [City]
LEFT OUTER JOIN [dbo].[Country] [Country] ON ([Country].[Id] = [City].[CountryId])
LEFT OUTER JOIN [dbo].[Contact] [Contact] ON ([Contact].[Id] = [Country].[CreatedById])
Получить данные с учетом прав пользователя
Сложный

Примеры 

public string CreateESQ()
{
    var result = "";
    // Получение экземпляра менеджера схем объектов.          
    EntitySchemaManager esqManager = SystemUserConnection.EntitySchemaManager;
    // Получение экземпляра схемы, которая будет установлена в качестве корневой для создаваемого экземпляра
    // EntitySchemaQuery.
    var rootEntitySchema = esqManager.GetInstanceByName("City") as EntitySchema;
    // Создание экземпляра EntitySchemaQuery, у которого в качестве корневой схемы установлена схема
    // rootEntitySchema.
    var esqResult = new EntitySchemaQuery(rootEntitySchema);
    // Добавление колонок, которые будут выбираться в результирующем запросе.
    esqResult.AddColumn("Id");
    esqResult.AddColumn("Name");
    // Получение экземпляра Select, ассоциированного с созданным запросом EntitySchemaQuery.
    Select selectEsq = esqResult.GetSelectQuery(SystemUserConnection);
    // Получение текста результирующего запроса созданного экземпляра EntitySchemaQuery.
    result = selectEsq.GetSqlText();
    return result;
}
public string CreateESQClone()
{
    var result = "";
    EntitySchemaManager esqManager = SystemUserConnection.EntitySchemaManager;
    var esqSource = new EntitySchemaQuery(esqManager, "Contact");
    esqSource.AddColumn("Id");
    esqSource.AddColumn("Name");
    // Создание экземпляра EntitySchemaQuery, являющегося клоном экземпляра esqSource.
    var esqClone = new EntitySchemaQuery(esqSource);
    result = esqClone.GetSelectQuery(SystemUserConnection).GetSqlText();
    return result;
}
public string GetEntitiesExample()
{
    var result = "";
    // Создание запроса к схеме City, добавление в запрос колонки Name.
    var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");
    var colName = esqResult.AddColumn("Name");

    // Выполнение запроса к базе данных и получение всей результирующей коллекции объектов.
    var entities = esqResult.GetEntityCollection(UserConnection);
    for (int i=0; i < entities.Length; i++) {
        result += entities[i].GetColumnValue(colName.Name).ToString();
        result += "\n";
    }
    
    // Выполнение запроса к базе данных и получение объекта с заданным идентификатором.
    var entity = esqResult.GetEntity(UserConnection, new Guid("100B6B13-E8BB-DF11-B00F-001D60E938C6"));
    result += "\n";
    result += entity.GetColumnValue(colName.Name).ToString();
    return result;
}
public Collection<string> UsingCacheExample()
{
    // Создание запроса к схеме City, добавление в запрос колонки Name.
    var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");
    esqResult.AddColumn("Name");

    // Определение ключа, под которым в кэше будут храниться результаты выполнения запроса.
    // В качестве кэша выступает кэш Creatio уровня сессии с локальным кэшированием данных (так как не 
    // переопределяется свойство Cache объекта).
    esqResult.CacheItemName = "EsqResultItem";

    // Коллекция, в которую будут помещены результаты выполнения запроса.
    var esqCityNames = new Collection<string>();

    // Коллекция, в которую будут помещаться закэшированные результаты выполнения запроса.
    var cachedEsqCityNames = new Collection<string>();

    // Выполнение запроса к базе данных и получение результирующей коллекции объектов.
    // После выполнения этой операции результаты запроса будут помещены в кэш.
    var entities = esqResult.GetEntityCollection(UserConnection);

    // Обработка результатов выполнения запроса и заполнение коллекции esqCityNames.
    foreach (var entity in entities)
    {
        esqCityNames.Add(entity.GetTypedColumnValue<string>("Name"));
    }

    // Получение ссылки на кэш запроса esqResult по ключу CacheItemName виде таблицы данных в памяти.
    var esqCacheStore = esqResult.Cache[esqResult.CacheItemName] as DataTable;

    // Заполнение коллекции cachedEsqCityNames значениями из кэша запроса.
    if (esqCacheStore != null)
    {
        foreach (DataRow row in esqCacheStore.Rows)
        {
            cachedEsqCityNames.Add(row[0].ToString());
        }
    }
    return cachedEsqCityNames;
}
public Collection<string> ESQOptionsExample()
{
    // Создание экземпляра запроса с корневой схемой City.
    var esqCities = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City");
    esqCities.AddColumn("Name");

    // Создание запроса с корневой схемой Country.
    var esqCountries = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Country");
    esqCountries.AddColumn("Name");

    // Создание экземпляра настроек для возврата запросом первых 5 строк.
    var esqOptions = new EntitySchemaQueryOptions()
    {
        PageableDirection = PageableSelectDirection.First,
        PageableRowCount = 5,
        PageableConditionValues = new Dictionary<string, object>()
    };

    // Получение коллекции городов, которая будет содержать первые 5 городов результирующего набора данных.
    var cities = esqCities.GetEntityCollection(UserConnection, esqOptions);

    // Получение коллекции стран, которая будет содержать первые 5 стран результирующего набора данных.
    var countries = esqCountries.GetEntityCollection(UserConnection, esqOptions);
        var esqStringCollection = new Collection<string>();
    foreach (var entity in cities)
    {
        esqStringCollection.Add(entity.GetTypedColumnValue<string>("Name"));
    }
    foreach (var entity in countries)
    {
        esqStringCollection.Add(entity.GetTypedColumnValue<string>("Name"));
    }
    return esqStringCollection;
}
Добавить данные
Сложный

Примеры 

public string GetSqlTextExample(string ContactName)
{
    var result = "";
    var id = Guid.NewGuid();
    var ins = new Insert(UserConnection)
        .Into("Contact")
        .Set("Id", Column.Parameter(id))
        .Set("Name", Column.Parameter(ContactName));
    result = ins.GetSqlText();
    return result;
}
public string InsertContact(string contactName)
{
    contactName = contactName ?? "Unknown contact";
    var ins = new Insert(UserConnection)
        .Into("Contact")
        .Set("Name", Column.Parameter(contactName));
    var affectedRows = ins.Execute();
    var result = $"Inserted new contact with name '{contactName}'. {affectedRows} rows affected";
    return result;
}
public string InsertCity(string city, string country)
{
    city = city ?? "unknown city";
    country = country ?? "unknown country";

    var ins = new Insert(UserConnection)
        .Into("City")
        .Set("Name", Column.Parameter(city))
        .Set("CountryId",
            new Select(UserConnection)
                    .Top(1)
                    .Column("Id")
                .From("Country")
                .Where("Name")
                    .IsEqual(Column.Parameter(country)));
    var affectedRows = ins.Execute();
    var result = $"Inserted new city with name '{city}' located in '{country}'. {affectedRows} rows affected";
    return result;
}
Функциональность многострочного добавления данных
Сложный

Функциональность многострочной вставки доступна на уровне класса Insert и ее работа определяется методом Values().

При вызове метода Values() все последующие вызовы Set() попадают в новый экземпляр ColumnsValues. При построении запроса, если в коллекции ColumnsValuesCollection встречается более одного набора данных, то будет построен запрос с несколькими блоками Values().

Пример
new Insert(UserConnection)
.Into("Table")
.Values()
    .Set("Column1", Column.Parameter(1))
    .Set("Column2", Column.Parameter(1))
    .Set("Column3", Column.Parameter(1))
.Values()
    .Set("Column1", Column.Parameter(2))
    .Set("Column2", Column.Parameter(2))
    .Set("Column3", Column.Parameter(2))
.Values()
    .Set("Column1", Column.Parameter(3))
    .Set("Column2", Column.Parameter(3))
    .Set("Column3", Column.Parameter(3))
.Execute();

В результате будет сформирован следующий SQL-запрос.

SQL-запрос
--Для MSSQL или PostgreSQL
INSERT INTO [dbo].[Table] (Column1, Column2, Column3)
VALUES (1, 1, 1),
    (2, 2, 2),
    (3, 3, 3)
    
-- Для Oracle
INSERT ALL
    into Table (column1, column2, column3) values (1, 1, 1)
    into Table (column1, column2, column3) values (2, 2, 2)
    into Table (column1, column2, column3) values (3, 3, 3)
SELECT * FROM dual

Особенности использования 

  1. При использовании Column.Parameter в выражении Set() необходимо помнить про ограничение 2100 параметров в MS SQL.
  2. Класс Insert не может самостоятельно разбивать запрос на несколько, если в нем находится больше параметров, чем нужно. Разбиение на несколько запросов должно быть реализовано разработчиком.

    Пример
    IEnumerable<IEnumerable<ImportEntity>> GetImportEntitiesChunks(IEnumerable<ImportEntity> entities,
                    IEnumerable<ImportColumn> keyColumns) {
        var entitiesList = entities.ToList();
        var columnsList = keyColumns.ToList();
        var maxParamsPerChunk = Math.Abs(MaxParametersCountPerQueryChunk / columnsList.Count + 1);
        var chunksCount = (int)Math.Ceiling(entitiesList.Count / (double)maxParamsPerChunk);
        return entitiesList.SplitOnParts(chunksCount);
    }
    
    var entitiesList = GetImportEntitiesChunks(entities, importColumns);
    entitiesList.AsParallel().AsOrdered()
        .ForAll(entitiesBatch => {
            try {
                var insertQuery = GetBufferedImportEntityInsertQuery();
                foreach (var importEntity in entitiesBatch) {
                    insertQuery.Values();
                    SetBufferedImportEntityInsertColumnValues(importEntity, insertQuery,
                            importColumns);
                    insertQuery.Set("ImportSessionId", Column.Parameter(importSessionId));
                }
                insertQuery.Execute();
            } catch (Exception e) {
                //...
            }
    });
    
  3. Класс Insert() не проводит валидацию на соответствие количества колонок и количества условий Set(). Например, есть результирующий SQL-запрос:

    SQL-запрос
    INSERT INTO [dbo].[Table] (Column1, Column2, Column3)
    Values (1, 2), (1, 2, 3)
    

В таком случае возникнет исключение на уровне работы СУБД. Подобная валидация не лежит в зоне ответственности класса Insert и зависит только от разработчика.

Добавить данные с помощью подзапросов
Сложный

Примеры 

public string GetSqlTextExample(string contactName, string accountName)
{
    var result = "";
    var id = Guid.NewGuid();
    var selectQuery = new Select(UserConnection)
        .Column(Column.Parameter(contactName))
        .Column("Id")
        .From("Account")
        .Where("Name").IsEqual(Column.Parameter(accountName)) as Select;
    var insertSelectQuery = new InsertSelect(UserConnection)
        .Into("Contact")
        .Set("Name", "AccountId")
        .FromSelect(selectQuery);

    result = insertSelectQuery.GetSqlText();
    return result;
}
public string InsertContactWithAccount(string contactName, string accountName)
{
    contactName = contactName ?? "Unknown contact";
    accountName = accountName ?? "Unknown account";
    
    var id = Guid.NewGuid();
    var selectQuery = new Select(UserConnection)
            .Column(Column.Parameter(contactName))
            .Column("Id")
        .From("Account")
        .Where("Name").IsEqual(Column.Parameter(accountName)) as Select;
    var insertSelectQuery = new InsertSelect(UserConnection)
        .Into("Contact")
        .Set("Name", "AccountId")
        .FromSelect(selectQuery);

    var affectedRows = insertSelectQuery.Execute();
    var result = $"Inserted new contact with name '{contactName}'" +
                $" and account '{accountName}'." +
                $" Affected {affectedRows} rows.";
    return result;
}
public string InsertAllAccountsContact(string contactName)
{
    contactName = contactName ?? "Unknown contact";

    var id = Guid.NewGuid();
    var insertSelectQuery = new InsertSelect(UserConnection)
        .Into("Contact")
        .Set("Name", "AccountId")
        .FromSelect(
            new Select(UserConnection)
                .Column(Column.Parameter(contactName))
                .Column("Id")
                .From("Account") as Select);

    var affectedRows = insertSelectQuery.Execute();
    var result = $"Inserted {affectedRows} new contacts with name '{contactName}'";
    return result;
}
Изменить данные
Сложный

Важно. В большинстве случаев запрос на изменение должен содержать условие Where, уточняющее какие именно записи необходимо поменять. Иначе будут изменены все записи.

Примеры 

public string GetSqlTextExample(string oldName, string newName)
{
    var result = "";
    var update = new Update(UserConnection, "Contact")
        .Set("Name", Column.Parameter(newName))
        .Where("Name").IsEqual(Column.Parameter(oldName));
    result = update.GetSqlText();
    return result;
}
 public string ChangeContactName(string oldName, string newName)
{
    var update = new Update(UserConnection, "Contact")
        .Set("Name", Column.Parameter(newName))
        .Where ("Name").IsEqual(Column.Parameter(oldName));
    var cnt = update.Execute();
    return $"Contacts {oldName} changed to {newName}. {cnt} rows affected.";
}
public string ChangeAllContactModifiedBy(string Name)
{
    var update = new Update(UserConnection, "Contact")
        .Set("ModifiedById", 
            new Select(UserConnection).Top(1)
                .Column("Id")
                .From("Contact")
                .Where("Name").IsEqual(Column.Parameter(Name)));
    var cnt = update.Execute();
    return $"All contacts are changed by {Name} now. {cnt} rows affected.";
}

На заметку. В последнем примере условие Where относится к запросу Select. Запрос Update не содержит условия Where, т. к. необходимо изменить все записи.

Удалить данные из базы
Сложный

Важно. В большинстве случаев запрос на удаление должен содержать условие Where, уточняющее какие именно записи необходимо удалить. Иначе будут удалены все записи.

Важно. Код в примерах показывает различные способы передачи параметров в запрос. При разработке проекта учитывайте, что в метод Column.Const не следует передавать параметры, контролируемые пользователем, так как это может привести к потенциальным sql-инъекциям.

Примеры 

public string GetSqlTextExample(string name)
{
    var result = "";
    var delete = new Delete(UserConnection)
        .From("Contact")
        .Where("Name").IsEqual(Column.Parameter(name));
    result = delete.GetSqlText();
    return result;
}
public string DeleteContacts(string name)
{
    var delete = new Delete(UserConnection)
        .From("Contact")
        .Where("Name").IsEqual(Column.Parameter(name));
    var cnt = delete.Execute();
    return $"Contacts with name {name} were deleted. {cnt} rows affected";
}
Класс Entity
Сложный

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

Класс Terrasoft.Core.Entities.Entity предназначен для доступа к объекту, который представляет собой запись в таблице базы данных.

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

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

Entity(UserConnection userConnection)

Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection.

Entity(UserConnection userConnection, Guid schemaUId)

Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection и схемы заданной идентификатором schemaUId.

Entity(Entity source)

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

Свойства 

ChangeType EntityChangeType

Тип изменения состояния объекта (добавлен, изменен, удален, без изменений).

EntitySchemaManager EntitySchemaManager

Экземпляр менеджера схемы объекта.

EntitySchemaManagerName string

Имя менеджера схемы объекта.

HasColumnValues bool

Определяет, имеет ли объект хотя бы одну колонку.

HierarchyColumnValue Guid

Значение колонки связи с родительской записью для иерархических объектов.

InstanceUId Guid

Идентификатор экземпляра объекта.

IsDeletedFromDB bool

Определяет, удален ли объект из базы данных.

IsInColumnValueChanged bool

Определяет, выполняется ли обработка события ColumnValueChanged.

IsInColumnValueChanging bool

Определяет, выполняется ли обработка события ColumnValueChanging.

IsInDefColumnValuesSet bool

Определяет, выполняется ли обработка события DefColumnValuesSet.

IsInDeleted bool

Определяет, выполняется ли обработка события Deleted.

IsInDeleting bool

Определяет, выполняется ли обработка события Deleting.

IsInInserted bool

Определяет, выполняется ли обработка события Inserted.

IsInInserting bool

Определяет, выполняется ли обработка события Inserting.

IsInLoaded bool

Определяет, выполняется ли обработка события Loaded.

IsInLoading bool

Определяет, выполняется ли обработка события Loading.

IsInSaved bool

Определяет, выполняется ли обработка события Saved.

IsInSaveError bool

Определяет, выполняется ли обработка события SaveError.

IsInSaving bool

Определяет, выполняется ли обработка события Saving.

IsInUpdated bool

Определяет, выполняется ли обработка события Updated.

IsInUpdating bool

Определяет, выполняется ли обработка события Updating.

IsInValidating bool

Определяет, выполняется ли обработка события Validating.

IsSchemaInitialized bool

Определяет, является ли схема объекта проинициализированной.

LicOperationPrefix string

Префикс лицензируемой операции.

LoadState EntityLoadState

Состояние загрузки объекта.

PrimaryColumnValue Guid

Идентификатор первичной колонки.

PrimaryDisplayColumnValue string

Значение для отображения первичной колонки.

Process Process

Встроенный процесс объекта.

Schema EntitySchema

Экземпляр схемы объекта.

SchemaName string

Имя схемы объекта.

StoringState StoringObjectState

Состояние объекта (изменен, добавлен, удален, без изменений).

UseAdminRights bool

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

UseDefRights bool

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

UseLazyLoad bool

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

UserConnection UserConnection

Пользовательское подключение.

ValidationMessages EntityValidationMessageCollection

Коллекция сообщений, выводимых при проверке объекта.

ValueListSchemaManager ValueListSchemaManager

Экземпляр менеджера перечислений объекта.

ValueListSchemaManagerName string

Имя менеджера перечислений объекта.

Методы 

void AddDefRights()
void AddDefRights(Guid primaryColumnValue)
void AddDefRights(IEnumerable<Guid> primaryColumnValues)

Для данного объекта устанавливает права по умолчанию.

virtual object Clone()

Создает клон текущего экземпляра Entity.

Insert CreateInsert(bool skipLookupColumnValues)

Создает запрос на добавление данных в базу.

Update CreateUpdate(bool skipLookupColumnValues)

Создает запрос на обновление данных в базе.

virtual bool Delete()
virtual bool Delete(object keyValue)

Удаляет из базы данных запись объекта. Параметр keyValue определяет первичный ключ записи.

bool DeleteWithCancelProcess()

Удаляет из базы данных запись объекта и отменяет запущенный процесс.

static Entity DeserializeFromJson(UserConnection userConnection, string jsonValue)

Создает объект типа Entity, используя пользовательское подключение userConnection, и заполняет значения его полей из указанной строки формата JSON jsonValue.

bool ExistInDB(EntitySchemaColumn conditionColumn, object conditionValue)
bool ExistInDB(string conditionColumnName, object conditionValue)
bool ExistInDB(object keyValue)
bool ExistInDB(Dictionary<string,object> conditions)

Определяет, существует ли в базе данных запись, отвечающая заданному условию запроса conditionValue к заданной колонке схемы объекта conditionColumn либо с заданным первичным ключом keyValue.

bool FetchFromDB(EntitySchemaColumn conditionColumn, object conditionValue, bool useDisplayValues)
bool FetchFromDB(string conditionColumnName, object conditionValue, bool useDisplayValues)
bool FetchFromDB(object keyValue, bool useDisplayValues)
bool FetchFromDB(Dictionary<string,object> conditions, bool useDisplayValues)
bool FetchFromDB(EntitySchemaColumn conditionColumn, object conditionValue, IEnumerable<EntitySchemaColumn> columnsToFetch, bool useDisplayValues)
bool FetchFromDB(string conditionColumnName, object conditionValue, IEnumerable<string>columnNamesToFetch, bool useDisplayValues)

По заданному условию загружает объект из базы данных.

Параметры
conditionColumn колонка, для которой задается условие выборки
conditionColumnName название колонки, для которой задается условие выборки
conditionValue значение колонки условия для выбираемых данных
columnsToFetch список колонок, которые будут выбраны
columnNamesToFetch список названий колонок, которые будут выбраны
conditions набор условий фильтрации выборки записей объекта
keyValue значение ключевого поля
useDisplayValues признак получения в запросе первичных отображаемых значений. Если параметр равен true, в запросе будут возвращены первичные отображаемые значения
bool FetchPrimaryColumnFromDB(object keyValue)

По заданному условию keyValue загружает из базы данных объект с первичной колонкой.

bool FetchPrimaryInfoFromDB(EntitySchemaColumn conditionColumn, object conditionValue)
bool FetchPrimaryInfoFromDB(string conditionColumnName, object conditionValue)

По заданному условию загружает из базы данных объект с первичными колонками, включая колонку, первичную для отображения.

byte[] GetBytesValue(string valueName)

Возвращает значение заданной колонки объекта в виде массива байт.

IEnumerable<EntityColumnValue> GetChangedColumnValues()

Возвращает коллекцию имен колонок объекта, которые были изменены.

string GetColumnDisplayValue(EntitySchemaColumn column)

Возвращает значение для отображения свойства объекта, соответствующее заданной колонке схемы объекта.

object GetColumnOldValue(string valueName)
object GetColumnOldValue(EntitySchemaColumn column)

Возвращает предыдущее значение заданного свойства объекта.

virtual object GetColumnValue(string valueName)
virtual object GetColumnValue(EntitySchemaColumn column)

Возвращает значение колонки объекта с заданным именем, cоответствующее переданной колонке схемы объекта.

IEnumerable<string> GetColumnValueNames()

Возвращает коллекцию имен колонок объекта.

virtual bool GetIsColumnValueLoaded(string valueName)
bool GetIsColumnValueLoaded(EntitySchemaColumn column)

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

virtual MemoryStream GetStreamValue(string valueName)

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

virtual TResult GetTypedColumnValue<TResult>(string valueName)
TResult GetTypedColumnValue<TResult>(EntitySchemaColumn column)

Возвращает типизированное значение свойства объекта, соответствующее заданной колонке схемы объекта.

TResult GetTypedOldColumnValue<TResult>(string valueName)
TResult GetTypedOldColumnValue<TResult>(EntitySchemaColumn column)

Возвращает типизированное предыдущее значение свойства объекта, соответствующее заданной колонке схемы объекта.

virtual bool InsertToDB(bool skipLookupColumnValues, bool validateRequired)

Добавляет запись текущего объекта в базу данных.

Параметры
skipLookupColumnValues параметр, определяющий необходимость добавления в базу данных колонок типа справочник. Если параметр равен true, то колонки типа справочник не будут добавлены в базу. Значение по умолчанию — false
validateRequired параметр, определяющий необходимость проверки заполнения обязательных значений. Значение по умолчанию — true
bool IsColumnValueLoaded(string valueName)
bool IsColumnValueLoaded(EntitySchemaColumn column)

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

virtual bool Load(DataRow dataRow)
virtual bool Load(DataRow dataRow, Dictionary<string,string> columnMap)
virtual bool Load(IDataReader dataReader)
virtual bool Load(IDataReader dataReader, IDictionary<string,string> columnMap)
virtual bool Load(object dataSource)
virtual bool Load(object dataSource, IDictionary<string,string> columnMap)

Заполняет объект переданными данными.

Параметры
dataRow экземпляр System.Data.DataRow, из которого загружаются данные в объект
dataReader экземпляр System.Data.IDataReader, из которого загружаются данные
dataSource экземпляр System.Object, из которого загружаются данные
columnMap свойства объекта, заполняемые данными
void LoadColumnValue(string columnValueName, IDataReader dataReader, int fieldIndex, int binaryPackageSize)
void LoadColumnValue(string columnValueName, IDataReader dataReader, int fieldIndex)
void LoadColumnValue(string columnValueName, object value)
void LoadColumnValue(EntitySchemaColumn column, object value)

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

Параметры
columnValueName имя свойства объекта
column колонка схемы объекта
dataReader экземпляр System.Data.IDataReader, из которого загружается значение свойства
fieldIndex индекс загружаемого из System.Data.IDataReader поля
binaryPackageSize размер загружаемого значения
value загружаемое значение свойства
static Entity Read(UserConnection userConnection, DataReader dataReader)

Возвращает значение текущего свойства типа Entity из потока ввода.

void ReadData(DataReader reader)
void ReadData(DataReader reader, EntitySchema schema)

Считывает данные из схемы объекта в заданный объект типа System.Data.IDataReader.

void ResetColumnValues()

Для всех свойств объекта отменяет изменения.

void ResetOldColumnValues()

Для всех свойств объекта отменяет изменения, устанавливая предыдущее значение.

bool Save(bool validateRequired)

Сохраняет объект в базе данных. Параметр validateRequired определяет необходимость проверки заполнения обязательных значений. Значение по умолчанию — true.

static string SerializeToJson(Entity entity)

Преобразует объект entity в строку формата JSON.

virtual void SetBytesValue(string valueName, byte[] streamBytes)

Устанавливает для заданного свойства объекта переданное значение типа System.Byte.

bool SetColumnBothValues(EntitySchemaColumn column, object value, string displayValue)
bool SetColumnBothValues(string columnValueName, object value, string displayColumnValueName, string displayValue)

Устанавливает свойству объекта, соответствующему заданной колонке схемы, переданные значение value и значение для отображения displayValue.

bool SetColumnValue(string valueName, object value)
bool SetColumnValue(EntitySchemaColumn column, object value)

Устанавливает заданной колонке схемы переданное значение value.

void SeddefColumnValue(string columnValueName, object defValue)
void SeddefColumnValue(string columnValueName)

Устанавливает значение по умолчанию свойству с заданным именем.

void SeddefColumnValues()

Для всех свойств объекта устанавливает значения по умолчанию.

bool SetStreamValue(string valueName, Stream value)

Устанавливает для заданного свойства объекта переданное значение типа System.IO.Stream.

virtual bool UpdateInDB(bool validateRequired)

Обновляет запись объекта в базе данных. Параметр validateRequired определяет необходимость проверки заполнения обязательных значений. Значение по умолчанию — true.

bool Validate()

Проверяет заполнение обязательных полей.

static void Write(DataWriter dataWriter, Entity entity, string propertyName)
static void Write(DataWriter dataWriter, Entity entity, string propertyName, bool couldConvertForXml)

Осуществляет запись значения типа Entity в поток вывода с заданными именем.

Параметры
dataWriter экземпляр класса Terrasoft.Common.DataWriter, предоставляющий методы последовательной записи значений в поток вывода
entity значение для записи типа Entity
propertyName имя объекта
couldConvertForXml разрешить преобразование для xml-сериализации
void Write(DataWriter dataWriter, string propertyName)

Осуществляет запись значения типа Entity в поток вывода с заданными именем.

void WriteData(DataWriter writer)
void WriteData(DataWriter writer, EntitySchema schema)

Осуществляет запись в поток вывода для указанной либо текущей схемы объекта.

События 

event EventHandler<EntityColumnAfterEventArgs> ColumnValueChanged

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

Обработчик события получает аргумент типа EntityColumnAfterEventArgs.

Свойства EntityColumnAfterEventArgs предоставляющие сведения, относящиеся к событию:

  • ColumnValueName;
  • DisplayColumnValueName.
event EventHandler<EntityColumnBeforeEventArgs> ColumnValueChanging

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

Обработчик события получает аргумент типа EntityColumnBeforeEventArgs.

Свойства EntityColumnBeforeEventArgs предоставляющие сведения, относящиеся к событию:

  • ColumnStreamValue;
  • ColumnValue
  • ColumnValueName;
  • DisplayColumnValue;
  • DisplayColumnValueName.
event EventHandler<EventArgs> DefColumnValuesSet

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

event EventHandler<EntityAfterEventArgs> Deleted

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

Обработчик события получает аргумент типа EntityAfterEventArgs.

Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:

  • ModifiedColumnValues;
  • PrimaryColumnValue.
event EventHandler<EntityBeforeEventArgs> Deleting

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

Обработчик события получает аргумент типа EntityBeforeEventArgs.

Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:

  • AdditionalCondition;
  • IsCanceled;
  • KeyValue.
event EventHandler<EntityAfterEventArgs> Inserted

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

Обработчик события получает аргумент типа EntityAfterEventArgs.

Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:

  • ModifiedColumnValues;
  • PrimaryColumnValue.
event EventHandler<EntityBeforeEventArgs> Inserting

Обработчик события, возникающего перед вставкой объекта.

Обработчик события получает аргумент типа EntityBeforeEventArgs.

Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:

  • AdditionalCondition;
  • IsCanceled;
  • KeyValue.
event EventHandler<EntityAfterLoadEventArgs> Loaded

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

Обработчик события получает аргумент типа EntityAfterLoadEventArgs.

Свойства EntityAfterLoadEventArgs предоставляющие сведения, относящиеся к событию:

  • ColumnMap;
  • DataSource.
event EventHandler<EntityBeforeLoadEventArgs> Loading

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

Обработчик события получает аргумент типа EntityBeforeLoadEventArgs.

Свойства EntityBeforeLoadEventArgs предоставляющие сведения, относящиеся к событию:

  • ColumnMap;
  • DataSource;
  • IsCanceled.
event EventHandler<EntityAfterEventArgs> Saved

Обработчик события, возникающего после сохранения объекта.

Обработчик события получает аргумент типа EntityAfterEventArgs.

Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:

  • ModifiedColumnValues;
  • PrimaryColumnValue.
event EventHandler<EntitySaveErrorEventArgs> SaveError

Обработчик события, возникающего при ошибке сохранения объекта.

Обработчик события получает аргумент типа EntitySaveErrorEventArgs.

Свойства EntitySaveErrorEventArgs предоставляющие сведения, относящиеся к событию:

  • Exception;
  • IsHandled.
event EventHandler<EntityBeforeEventArgs> Saving

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

Обработчик события получает аргумент типа EntityBeforeEventArgs.

Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:

  • AdditionalCondition;
  • IsCanceled;
  • KeyValue.
event EventHandler<EntityAfterEventArgs> Updated

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

Обработчик события получает аргумент типа EntityAfterEventArgs.

Свойства EntityAfterEventArgs предоставляющие сведения, относящиеся к событию:

  • ModifiedColumnValues;
  • PrimaryColumnValue.
event EventHandler<EntityBeforeEventArgs>Updating

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

Обработчик события получает аргумент типа EntityBeforeEventArgs.

Свойства EntityBeforeEventArgs предоставляющие сведения, относящиеся к событию:

  • AdditionalCondition;
  • IsCanceled;
  • KeyValue.
event EventHandler<EntityValidationEventArgs> Validating

Обработчик события, возникающего при проверке объекта.

Обработчик события получает аргумент типа EntityValidationEventArgs.

Свойства EntityValidationEventArgs предоставляющие сведения, относящиеся к событию:

  • Messages.
Класс Select
Сложный

Пространство имен 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.

IDataReader ExecuteReader(DBExecutor dbExecutor, CommandBehavior behavior)

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

void ExecuteReader(ExecuteReaderReadMethod readMethod)

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

TResult ExecuteScalar<TResult>()

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

TResult ExecuteScalar<TResult>(DBExecutor dbExecutor)

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

Select Distinct()

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

Select Top(int rowCount)

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

Select As(string 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)

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

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

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

Параметры
subSelect подзапрос выборки
subSelectQuery подзапрос
Класс EntitySchemaQuery
Сложный

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

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

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

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

EntitySchemaQuery(EntitySchema rootSchema)

Создает экземпляр класса, в котором в качестве корневой схемы устанавливается переданный экземпляр EntitySchema. В качестве менеджера схем устанавливается менеджер переданного экземпляра корневой схемы.

EntitySchemaQuery(EntitySchemaManager entitySchemaManager, string sourceSchemaName)

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

EntitySchemaQuery(EntitySchemaQuery source)

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

Свойства 

Cache Terrasoft.Core.Store.ICacheStore

Кэш запроса.

CacheItemName string

Имя элемента кэша.

CanReadUncommitedData bool

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

Caption Terrasoft.Common.LocalizableString

Заголовок.

ChunkSize int

Количество строк запроса в одном чанке.

Columns Terrasoft.Core.Entities.EntitySchemaQueryColumnCollection

Коллекция колонок текущего запроса к схеме объекта.

DataValueTypeManager DataValueTypeManager

Менеджер значений типов данных.

EntitySchemaManager Terrasoft.Core.Entities.EntitySchemaManager

Менеджер схем объектов.

Filters Terrasoft.Core.Entities.EntitySchemaQueryFilterCollection

Коллекция фильтров текущего запроса к схеме объекта.

HideSecurityValue bool

Определяет, будут ли скрыты значения зашифрованных колонок.

IgnoreDisplayValues bool

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

IsDistinct bool

Определяет, убирать ли дубли в результирующем наборе данных.

IsInherited bool

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

JoinRightState QueryJoinRightLevel

Определяет условие наложения прав при использовании связанных таблиц, если схема администрируется по записям.

Manager Terrasoft.Core.IManager

Менеджер схем.

ManagerItem Terrasoft.Core.IManagerItem

Элемент менеджера.

Name string

Имя.

ParentCollection Terrasoft.Core.Entities.EntitySchemaQueryCollection

Коллекция запросов, которой принадлежит текущий запрос к схеме объекта.

ParentEntitySchema Terrasoft.Core.Entities.EntitySchema

Родительская схема запроса.

PrimaryQueryColumn Terrasoft.Core.Entities.EntitySchemaQueryColumn

Колонка, созданная по первичной колонке корневой схемы. Заполняется при первом обращении.

QueryOptimize bool

Разрешает использование оптимизации запроса.

RootSchema Terrasoft.Core.Entities.EntitySchema

Корневая схема.

RowCount int

Количество строк, возвращаемых запросом.

SchemaAliasPrefix string

Префикс, используемый для создания псевдонимов схем.

SkipRowCount int

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

UseAdminRights bool

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

UseLocalization bool

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

UseOffsetFetchPaging bool

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

UseRecordDeactivation bool

Определяет, будут ли данные исключены из фильтрации.

AdminUnitRoleSources int

Целочисленное свойство, которое соответствует критериям фильтрации записей по источнику вхождения пользователя в роли. Значение по умолчанию: 0.

Чтобы сформировать AdminUnitRoleSources, необходимо с помощью побитового ИЛИ "|" перечислить следующие константы из серверного класса AdminUnitRoleSources:

  • ExplicitEntry.
  • Delegated.
  • FuncRoleFromOrgRole.
  • UpHierarchy.
  • AsManager.
  • All.
  • None.

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

Методы 

void AddAllSchemaColumns(bool skipSystemColumns)

В коллекцию колонок текущего запроса к схеме объекта добавляет все колонки корневой схемы.

EntitySchemaQueryColumn AddColumn(string columnPath, AggregationTypeStrict aggregationType, out EntitySchemaQuery subQuery)
void AddColumn(EntitySchemaQueryColumn queryColumn)
EntitySchemaQueryColumn AddColumn(string columnPath)
EntitySchemaQueryColumn AddColumn(EntitySchemaQueryFunction function)
EntitySchemaQueryColumn AddColumn(object parameterValue, DataValueType parameterDataValueType)
EntitySchemaQueryColumn AddColumn(EntitySchemaQuery subQuery)

Создает и добавляет колонку в текущий запрос к схеме объекта.

Параметры
columnPath путь к колонке схемы относительно корневой схемы
aggregationType тип агрегирующей функции. В качестве параметра передаются значения перечисления типов агрегирующей функции Terrasoft.Common.AggregationTypeStrict
subQuery ссылка на созданный подзапрос, помещенный в колонку
queryColumn экземпляр EntitySchemaQueryColumn, добавляемый в коллекцию колонок текущего запроса
function экземпляр функции EntitySchemaQueryFunction
parameterValue значение параметра, добавляемого в запрос в качестве колонки
parameterDataValueType тип значения параметра, добавляемого в запрос в качестве колонки
void ClearCache()

Очищает кэш текущего запроса.

static void ClearDefCache(string cacheItemName)

Удаляет из кэша запроса элемент с заданным именем cacheItemName.

object Clone()

Создает клон текущего экземпляра EntitySchemaQuery.

EntitySchemaQueryExpression CreateAggregationEntitySchemaExpression(string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType)

Возвращает выражение агрегирующей функции с заданным типом агрегации из перечисления Terrasoft.Common.AggregationTypeStrict для колонки, расположенной по заданному пути leftExprColumnPath.

static EntitySchemaQueryExpression CreateParameterExpression(object parameterValue)
static EntitySchemaQueryExpression CreateParameterExpression(object parameterValue, DataValueType valueType)
static EntitySchemaQueryExpression CreateParameterExpression(object parameterValue, string displayValue, DataValueType valueType)

Создает выражение для параметра запроса.

Параметры
parameterValue значение параметра
valueType тип значения параметра
displayValue значение для отображения параметра
static IEnumerable CreateParameterExpressions(DataValueType valueType, params object[] parameterValues)
static IEnumerable CreateParameterExpressions(DataValueType valueType, IEnumerable<object> parameterValues)

Создает коллекцию выражений для параметров запроса с определенным типом данных DataValueType.

static EntitySchemaQueryExpression CreateSchemaColumnExpression(EntitySchemaQuery parentQuery, EntitySchema rootSchema, string columnPath, bool useCoalesceFunctionForMultiLookup, bool useDisplayValue)
static EntitySchemaQueryExpression CreateSchemaColumnExpression(EntitySchema rootSchema, string columnPath, bool useCoalesceFunctionForMultiLookup)
EntitySchemaQueryExpression CreateSchemaColumnExpression(string columnPath, bool useCoalesceFunctionForMultiLookup)

Возвращает выражение колонки схемы объекта.

Параметры
parentQuery запрос к схеме объекта, для которого создается выражение колонки
rootSchema корневая схема
columnPath путь к колонке относительно корневой схемы
useCoalesceFunctionForMultiLookup признак, использовать ли для колонки типа справочник функцию COALESCE. Необязательный параметр, по умолчанию равен true
useDisplayValue признак, использовать ли для колонки значение для отображения. Необязательный параметр, по умолчанию равен false
Enumerable CreateSchemaColumnExpressions(params string[] columnPaths)
IEnumerable CreateSchemaColumnExpressions(IEnumerable columnPaths, bool useCoalesceFunctionForMultiLookup)

Возвращает коллекцию выражений колонок запроса к схеме объекта по заданной коллекции путей к колонкам columnPaths.

IEnumerable CreateSchemaColumnExpressionsWithoutCoalesce(params string[] columnPaths)

Возвращает коллекцию выражений колонок запроса к схеме объекта по заданному массиву путей к колонкам. При этом, если колонка имеет тип множественный справочник, к ее значениям не применяется функция COALESCE.

static EntitySchemaQueryExpression CreateSchemaColumnQueryExpression(string columnPath, EntitySchema rootSchema, EntitySchemaColumn schemaColumn, bool useDisplayValue)
static EntitySchemaQueryExpression CreateSchemaColumnQueryExpression(string columnPath, EntitySchema rootSchema, bool useDisplayValue)

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

EntitySchemaQueryExpression CreateSubEntitySchemaExpression(string leftExprColumnPath)

Возвращает выражение подзапроса к схеме объекта для колонки, расположенной по заданному пути leftExprColumnPath.

EntitySchemaAggregationQueryFunction CreateAggregationFunction(AggregationTypeStrict aggregationType, string columnPath)

Возвращает экземпляр агрегирующей функции EntitySchemaAggregationQueryFunction с заданным типом агрегации из перечисления Terrasoft.Common.AggregationTypeStrict для колонки по указанному пути относительно корневой схемы columnPath.

EntitySchemaCaseNotNullQueryFunction CreateCaseNotNullFunction(params EntitySchemaCaseNotNullQueryFunctionWhenItem[] whenItems)

Возвращает экземпляр CASE-функции EntitySchemaCaseNotNullQueryFunction для заданного массива выражений условий EntitySchemaCaseNotNullQueryFunctionWhenItem.

EntitySchemaCaseNotNullQueryFunctionWhenItem CreateCaseNotNullQueryFunctionWhenItem(string whenColumnPath, object thenParameterValue)

Возвращает экземпляр выражения для sql-конструкции вида WHEN <Выражение_1> IS NOT NULL THEN <Выражение_2>.

Параметры
whenColumnPath путь к колонке, содержащей выражение предложения WHEN
thenParameterValue путь к колонке, содержащей выражение предложения THEN
EntitySchemaCastQueryFunction CreateCastFunction(string columnPath, DBDataValueType castType)

Возвращает экземпляр CAST-функции EntitySchemaCastQueryFunction для выражения колонки, расположенной по заданному пути относительно корневой схемы columnPath, и указанным целевым типом данных DBDataValueType.

EntitySchemaCoalesceQueryFunction CreateCoalesceFunction(params string[] columnPaths)
static EntitySchemaCoalesceQueryFunction CreateCoalesceFunction(EntitySchemaQuery parentQuery, EntitySchema rootSchema, params string[] columnPaths)
static EntitySchemaCoalesceQueryFunction CreateCoalesceFunction(EntitySchema rootSchema, params string[] columnPaths)

Возвращает экземпляр функции, возвращающей первое не равное null выражение из списка аргументов, для заданных колонок.

Параметры
columnPaths массив путей к колонкам относительно корневой схемы
parentQuery запрос к схеме объекта, для которого создается экземпляр функции
rootSchema корневая схема
EntitySchemaConcatQueryFunction CreateConcatFunction(params EntitySchemaQueryExpression[] expressions)

Возвращает экземпляр функции для формирования строки, являющейся результатом объединения строковых значений аргументов функции для заданного массива выражений EntitySchemaQueryExpression.

EntitySchemaDatePartQueryFunction CreateDatePartFunction(EntitySchemaDatePartQueryFunctionInterval interval, string columnPath)

Возвращает экземпляр DATEPART-функции EntitySchemaDatePartQueryFunction, определяющей интервал даты, заданный перечислением EntitySchemaDatePartQueryFunctionInterval (месяц, день, час, год, день недели...), для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateDayFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, определяющей интервал даты День для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateHourFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Час для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateHourMinuteFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Минута для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateMonthFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Месяц для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateWeekdayFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты День недели для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateWeekFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Неделя для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaDatePartQueryFunction CreateYearFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaDatePartQueryFunction, возвращающей часть даты Год для значения колонки, расположенной по указанному пути относительно корневой схемы.

EntitySchemaIsNullQueryFunction CreateIsNullFunction(string checkColumnPath, string replacementColumnPath)

Возвращает экземпляр функции EntitySchemaIsNullQueryFunction для колонок с проверяемым и замещающим значениями, которые расположены по заданным путям относительно корневой схемы.

EntitySchemaLengthQueryFunction CreateLengthFunction(string columnPath)
EntitySchemaLengthQueryFunction CreateLengthFunction(params EntitySchemaQueryExpression[] expressions)

Создание экземпляра функции LEN (функция для возврата длины выражения) для выражения колонки по заданному пути относительно корневой схемы или для заданного массива выражений.

EntitySchemaTrimQueryFunction CreateTrimFunction(string columnPath)
EntitySchemaTrimQueryFunction CreateTrimFunction(params EntitySchemaQueryExpression[] expressions)

Возвращает экземпляр функции TRIM (функция для удаления начальных и конечных пробелов из выражения) для выражения колонки по заданному пути относительно корневой схемы или для заданного массива выражений.

EntitySchemaUpperQueryFunction CreateUpperFunction(string columnPath)

Возвращает экземпляр функции EntitySchemaUpperQueryFunction, для преобразования символов выражения аргумента к верхнему регистру, для выражения колонки по заданному пути относительно корневой схемы.

EntitySchemaCurrenddateQueryFunction CreateCurrenddateFunction()

Возвращает экземпляр функции EntitySchemaCurrenddateQueryFunction, определяющей текущую дату.

EntitySchemaCurrenddateTimeQueryFunction CreateCurrenddateTimeFunction()

Возвращает экземпляр функции EntitySchemaCurrenddateTimeQueryFunction, определяющей текущие дату и время.

EntitySchemaCurrentTimeQueryFunction CreateCurrentTimeFunction()

Возвращает экземпляр функции EntitySchemaCurrentTimeQueryFunction, определяющей текущее время.

EntitySchemaCurrentUserAccountQueryFunction CreateCurrentUserAccountFunction()

Возвращает экземпляр функции EntitySchemaCurrentUserAccountQueryFunction, определяющей идентификатор контрагента текущего пользователя.

EntitySchemaCurrentUserContactQueryFunction CreateCurrentUserContactFunction()

Возвращает экземпляр функции EntitySchemaCurrentUserContactQueryFunction, определяющей идентификатор контакта текущего пользователя.

EntitySchemaCurrentUserQueryFunction CreateCurrentUserFunction()

Возвращает экземпляр функции EntitySchemaCurrentUserQueryFunction, определяющей текущего пользователя.

EntitySchemaQueryFilter CreateExistsFilter(string rightExpressionColumnPath)

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

IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, params string[] rightExpressionColumnPaths)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQueryExpression rightExpression)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQueryFunction rightExpressionValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, EntitySchemaQueryExpression leftExpression, EntitySchemaQueryMacrosType macrosType, int rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, EntitySchemaQueryExpression leftExpression, EntitySchemaQueryMacrosType macrosType, DateTime rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, EntitySchemaQueryExpression leftExpression, EntitySchemaQueryMacrosType macrosType, DayOfWeek rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQueryMacrosType macrosType, int rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQueryMacrosType macrosType, DateTime rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQueryMacrosType macrosType, DayOfWeek rightValue)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExpressionColumnPath, EntitySchemaQuery rightExpressionValue)
EntitySchemaQueryFilter CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, int rightExprParameterValue)
EntitySchemaQueryFilter CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, double rightExprParameterValue)
EntitySchemaQueryFilter CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrlict leftExprAggregationType, DateTime rightExprParameterValue)
EntitySchemaQueryFilter CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, string rightExprParameterValue)
EntitySchemaQueryFilter CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, object rightExprParameterValue, out EntitySchemaQuery leftExprSubQuery)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, EntitySchemaQueryMacrosType macrosType, int daysCount)
IEntitySchemaQueryFilterItem CreateFilter(FilterComparisonType comparisonType, string leftExprColumnPath, AggregationTypeStrict leftExprAggregationType, EntitySchemaQueryMacrosType macrosType, out EntitySchemaQuery leftExprSubQuery, int daysCount)

Создает фильтр запроса для выборки записей по определенным условиям.

Параметры
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
IEntitySchemaQueryFilterItem CreateFilterWithParameters(FilterComparisonType comparisonType, bool useDisplayValue, string leftExpressionColumnPath, params object[] rightExpressionParameterValues)
IEntitySchemaQueryFilterItem CreateFilterWithParameters(FilterComparisonType comparisonType, string leftExpressionColumnPath, params object[] rightExpressionParameterValues)
IEntitySchemaQueryFilterItem CreateFilterWithParameters(FilterComparisonType comparisonType, string leftExpressionColumnPath, IEnumerable<object> rightExpressionParameterValues, bool useDisplayValue)
static IEntitySchemaQueryFilterItem CreateFilterWithParameters(EntitySchemaQuery parentQuery, EntitySchema rootSchema, FilterComparisonType comparisonType, bool useDisplayValue, string leftExpressionColumnPath, params object[] rightExpressionParameterValues)
static IEntitySchemaQueryFilterItem CreateFilterWithParameters(EntitySchema rootSchema, FilterComparisonType comparisonType, bool useDisplayValue, string leftExpressionColumnPath, params object[] rightExpressionParameterValues)

Создает параметризированный фильтр для выборки записей по определенным условиям.

Параметры
parentQuery родительский запрос, для которого создается фильтр
rootSchema корневая схема
comparisonType тип сравнения из перечисления Terrasoft.Core.Entities.FilterComparisonType
useDisplayValue признак типа значения колонки, которое используется в фильтре: true - значение для отображения; false - хранимое значение
leftExpressionColumnPath путь к колонке, содержащей выражение левой части фильтра
rightExpressionParameterValues коллекция выражений параметров в правой части фильтра
IEntitySchemaQueryFilterItem CreateIsNotNullFilter(string leftExpressionColumnPath)

Создает фильтр сравнения типа Не является null в базе данных, устанавливая в качестве проверяемого значения выражение колонки, расположенной по указанному в параметре leftExpressionColumnPath пути.

IEntitySchemaQueryFilterItem CreateIsNullFilter(string leftExpressionColumnPath)

Создает фильтр сравнения типа Является null в базе данных, устанавливая в качестве условия проверки выражение колонки, расположенной по указанному в параметре leftExpressionColumnPath пути.

EntitySchemaQueryFilter CreateNotExistsFilter(string rightExpressionColumnPath)

Создает фильтр сравнения типа Не существует по заданному условию и устанавливает в качестве проверяемого значения выражение колонки, расположенной по пути rightExpressionColumnPath.

DataTable GetDataTable(UserConnection userConnection)

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

static int GetDayOfWeekNumber(UserConnection userConnection, DayOfWeek dayOfWeek)

Возвращает порядковый номер дня недели для объекта System.DayOfWeek с учетом региональных настроек.

Entity GetEntity(UserConnection userConnection, object primaryColumnValue)

Возвращает экземпляр Entity по первичному ключу primaryColumnValue, используя пользовательское подключение UserConnection.

EntityCollection GetEntityCollection(UserConnection userConnection, EntitySchemaQueryOptions options)
EntityCollection GetEntityCollection(UserConnection userConnection)

Возвращает коллекцию экземпляров Entity, представляющих результаты выполнения текущего запроса, используя пользовательское подключение UserConnection и заданные дополнительные настройки запроса EntitySchemaQueryOptions.

EntitySchema GetSchema()

Возвращает экземпляр схемы объекта EntitySchema текущего экземпляра EntitySchemaQuery.

Select GetSelectQuery(UserConnection userConnection)
Select GetSelectQuery(UserConnection userConnection, EntitySchemaQueryOptions options)

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

EntitySchemaQueryColumnCollection GetSummaryColumns()
EntitySchemaQueryColumnCollection GetSummaryColumns(IEnumerable<string> columnNames)

Возвращает коллекцию выражений колонок запроса, для которых вычисляются итоговые значения.

Entity GetSummaryEntity(UserConnection userConnection, EntitySchemaQueryColumnCollection summaryColumns)
Entity GetSummaryEntity(UserConnection userConnection)
Entity GetSummaryEntity(UserConnection userConnection, IEnumerable<string> columnNames)
Entity GetSummaryEntity(UserConnection userConnection, params string[] columnNames)

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

Параметры
userConnection пользовательское подключение
summaryColumns коллекция колонок запроса, для которых выбираются итоговые значения
columnNames коллекция имен колонок
Select GetSummarySelectQuery(UserConnection userConnection, EntitySchemaQueryColumnCollection summaryColumns)
Select GetSummarySelectQuery(UserConnection userConnection)
Select GetSummarySelectQuery(UserConnection userConnection, IEnumerable<string> columnNames)
Select GetSummarySelectQuery(UserConnection userConnection, params string[] columnNames)

Строит запрос на выборку итоговых значений для заданной коллекции колонок текущего экземпляра EntitySchemaQuery.

Параметры
userConnection пользовательское подключение
summaryColumns коллекция колонок запроса, для которых выбираются итоговые значения
columnNames коллекция имен колонок
T GetTypedColumnValue(Entity entity, string columnName)

Возвращает типизированное значение колонки с именем columnName из переданного экземпляра Entity.

void LoadDataTableData(UserConnection userConnection, DataTable dataTable)
void LoadDataTableData(UserConnection userConnection, DataTable dataTable, EntitySchemaQueryOptions options)

Загружает результат выполнения текущего запроса к схеме объекта в объект System.Data.DataTable, используя пользовательское подключение UserConnection и заданные дополнительные настройки запроса EntitySchemaQueryOptions.

void RemoveColumn(string columnName)

Удаляет колонку с именем columnName из коллекции колонок текущего запроса.

void ResetSchema()

Очищает схему текущего экземпляра EntitySchemaQuery.

void ResetSelectQuery()

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

void SetLocalizationCultureId(System.Guid cultureId)

Устанавливает идентификатор локальной культуры.

Класс Insert
Сложный

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

Класс Terrasoft.Core.DB.Insert предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения INSERT. В результате выполнения запроса возвращается количество задействованных запросом записей.

Важно. При работе с классом Insert на добавленные записи не применяются права доступа по умолчанию. Пользовательское соединение используется только для доступа к таблице базы данных.

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

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

Entity(UserConnection userConnection)

Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection.

Insert(UserConnection userConnection)

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

Insert(Insert source)

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

Свойства 

UserConnection Terrasoft.Core.UserConnection

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

Source Terrasoft.Core.DB.ModifyQuerySource

Источник данных

Parameters Terrasoft.Core.DB.QueryParameterCollection

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

HasParameters bool

Определяет, имеет ли запрос параметры.

BuildParametersAsValue bool

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

ColumnValues Terrasoft.Core.DB.ModifyQueryColumnValueCollection

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

ColumnValuesCollection List<ModifyQueryColumnValueCollection>

Коллекция значений колонок для множественного добавления записей.

Методы 

void ResetCachedSqlText()

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

QueryParameterCollection GetUsingParameters()

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

void ResetParameters()

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

void SetParameterValue(string name, object value)

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

Параметры
name название параметра
value значение
void InitializeParameters()

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

int Execute()

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

int Execute(DBExecutor dbExecutor)

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

Insert Into(string schemaName)
Insert Into(ModifyQuerySource source)

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

Параметры
schemaName название схемы
source источник данных
Insert Set(string sourceColumnAlias, Select subSelect)
Insert Set(string sourceColumnAlias, Query subSelectQuery)
Insert Set(string sourceColumnAlias, QueryColumnExpression columnExpression)
Insert Set(string sourceColumnAlias, QueryParameter parameter)

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

Параметры
sourceColumnAlias псевдоним колонки
subSelect подзапрос на выборку
subSelectQuery подзапрос
columnExpression выражение колонки
parameter параметр запроса
Insert Values()

Инициализирует значения для множественного добавления записей.

Класс InsertSelect
Сложный

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

Класс Terrasoft.Core.DB.InsertSelect предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. При этом в качестве источника добавляемых данных используется экземпляр класса Terrasoft.Core.DB.Select. В результате создания и конфигурирования экземпляра Terrasoft.Core.DB.InsertSelect будет построен запрос базу данных приложения в виде SQL-выражения INSERT INTO SELECT.

Важно. При работе с классом InsertSelect на добавленные записи не применяются права доступа по умолчанию. К таким записям не применены вообще никакие права приложения (по операциям на объект, по записям, по колонкам). Пользовательское соединение используется только для доступа к таблице базы данных.

На заметку. После выполнения запроса InsertSelect в базу данных будет добавлено столько записей, сколько вернется в его подзапросе Select.

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

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

InsertSelect(UserConnection userConnection)

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

InsertSelect(InsertSelect source)

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

Свойства 

UserConnection Terrasoft.Core.UserConnection

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

Source Terrasoft.Core.DB.ModifyQuerySource

Источник данных

Parameters Terrasoft.Core.DB.QueryParameterCollection

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

HasParameters bool

Определяет, имеет ли запрос параметры.

BuildParametersAsValue bool

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

Columns Terrasoft.Core.DB.ModifyQueryColumnValueCollection

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

Select Terrasoft.Core.DB.Select

Используемый в запросе экземпляр Terrasoft.Core.DB.Select.

Методы 

void ResetCachedSqlText()

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

QueryParameterCollection GetUsingParameters()

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

void ResetParameters()

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

void SetParameterValue(string name, object value)

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

Параметры
name название параметра
value значение
void InitializeParameters()

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

int Execute()

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

int Execute(DBExecutor dbExecutor)

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

InsertSelect Into(string schemaName)
InsertSelect Into(ModifyQuerySource source)

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

Параметры
schemaName название схемы
source источник данных
InsertSelect Set(IEnumerable<string> sourceColumnAliases)
InsertSelect Set(params string[] sourceColumnAliases)
InsertSelect Set(IEnumerable<ModifyQueryColumn> columns)
InsertSelect Set(params ModifyQueryColumn[] columns)

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

Параметры
sourceColumnAliases коллекция или массив параметров метода, содержащие псевдонимы колонок
columns коллекция или массив параметров метода, содержащие экземпляры колонок
InsertSelect FromSelect(Select subSelect)
InsertSelect FromSelect(Query subSelectQuery)

Добавляет в текущий запрос предложение SELECT.

Параметры
subSelect подзапрос на выборку
subSelectQuery подзапрос
Класс Update
Сложный

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

Класс Terrasoft.Core.DB.Update предназначен для построения запросов на изменение записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения UPDATE.

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

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

Update(UserConnection userConnection)

Создает экземпляр класса, используя UserConnection.

Update(UserConnection userConnection, string schemaName)

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

Update(UserConnection userConnection, ModifyQuerySource source)

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

Update(Insert source)

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

Свойства 

UserConnection Terrasoft.Core.UserConnection

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

Condition Terrasoft.Core.DB.QueryCondition

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

HasCondition bool

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

Source Terrasoft.Core.DB.ModifyQuerySource

Источник данных запроса.

ColumnValues Terrasoft.Core.DB.ModifyQueryColumnValueCollection

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

Методы 

void ResetCachedSqlText()

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

QueryParameterCollection GetUsingParameters()

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

int Execute()

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

int Execute(DBExecutor dbExecutor)

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

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 условие запроса
Update Set(string sourceColumnAlias, Select subSelect)
Update Set(string sourceColumnAlias, Query subSelectQuery)
Update Set(string sourceColumnAlias, QueryColumnExpression columnExpression)
Update Set(string sourceColumnAlias, QueryParameter parameter)

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

Параметры
sourceColumnAlias псевдоним колонки
subSelect подзапрос на выборку
subSelectQuery подзапрос
columnExpression выражение колонки
parameter параметр запроса
Класс Delete
Сложный

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

Класс Terrasoft.Core.DB.Delete предназначен для построения запросов на удаление записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения DELETE.

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

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

Delete(UserConnection userConnection)

Создает экземпляр класса, используя UserConnection.

Delete(Delete source)

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

Свойства 

UserConnection Terrasoft.Core.UserConnection

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

Condition Terrasoft.Core.DB.QueryCondition

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

HasCondition bool

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

Source Terrasoft.Core.DB.ModifyQuerySource

Источник данных запроса.

Методы 

void ResetCachedSqlText()

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

QueryParameterCollection GetUsingParameters()

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

int Execute()

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

int Execute(DBExecutor dbExecutor)

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

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 условие запроса
Delete From(string schemaName)
Delete From((ModifyQuerySource source)

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

Параметры
schemaName название схемы (таблицы, представления)
source источник данных
Класс EntityMapper
Сложный

Класс Terrasoft.Configuration.EntityMapper — это утилитный класс конфигурации, который находится в пакете FinAppLending продукта Lending. EntityMapper позволяет сопоставлять данные одной сущности (Entity) с другой по правилам, определенным в конфигурационном файле. Использование подхода сопоставления данных разных сущностей позволяет избежать появления однообразного кода.

Идея сопоставления данных разных сущностей реализована в следующих классах:

  • EntityMapper — реализует логику сопоставления.
  • EntityResult — определяет в каком виде вернется сопоставленная сущность.
  • MapConfig — представляет набор правил для сопоставления.
  • DetailMapConfig — используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
  • RelationEntityMapConfig — содержит правила для сопоставления связанных сущностей.
  • EntityFilterMap — представляет из себя фильтр для запроса в базу данных.

Класс EntityMapper 

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

Класс реализует логику сопоставления.

Методы 

virtual EntityResult GetMappedEntity(Guid recId, MapConfig config)

Возвращает сопоставленные данные для двух объектов Entity.

Параметры
recId GUID записи в базе данных
config экземпляр класса MapConfig, представляющий из себя набор правил сопоставления
virtual Dictionary<string, object> GetColumnsValues(Guid recordId, MapConfig config, Dictionary<string, object> result)

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

Параметры
recordId GUID записи в базе данных
config экземпляр класса MapConfig, представляющий из себя набор правил сопоставления
result словарь колонок и их значений уже сопоставленной сущности
virtual Dictionary<string, object> GetRelationEntityColumnsValues(List<RelationEntityMapConfig> relations, Dictionary<string, object> dictionaryToMerge, string columnName, Terrasoft.Nui.ServiceModel.DataContract.LookupColumnValue entitylookup)

Получает из базы данных связанные сущности и сопоставляет их с основными сущностями.

Параметры
relations список правил для получения связанных записей
dictionaryToMerge словарь с колонками и их значениями
columnName название родительской колонки
entitylookup объект, содержащий название и Id записи в базе

Класс EntityResult 

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

Класс определяет в каком виде вернется сопоставленная сущность.

Свойства 

Columns Dictionary<string, object>

Словарь с названиями колонок основной сущности и их значениями.

Details Dictionary<string, List<Dictionary<string, object>>>

Словарь названий деталей со списком их колонок и значений.

Класс MapConfig 

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

Класс представляет набор правил для сопоставления.

Свойства 

SourceEntityName string

Название сущности в БД.

Columns Dictionary<string, object>

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

DetailsConfig List<DetailMapConfig>

Список конфигурационных объектов с правилами для деталей.

CleanDetails List<string>

Список названий деталей для очистки их значений.

RelationEntities List<RelationEntityMapConfig>

Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.

Класс DetailMapConfig 

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

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

Свойства 

DetailName string

Название детали (для обеспечения уникальности экземпляра детали).

SourceEntityName string

Название сущности в базе данных.

Columns Dictionary<string, object>

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

Filters List<EntityFilterMap>

Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.

RelationEntities List<RelationEntityMapConfig>

Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.

Класс RelationEntityMapConfig 

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

Класс содержит правила для сопоставления связанных сущностей.

Свойства 

ParentColumnName string

Название родительской колонки, при нахождении которой будет срабатывать логика получения и сопоставления данных по сущности.

SourceEntityName string

Название сущности в базе данных.

Columns Dictionary<string, object>

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

Filters List<EntityFilterMap>

Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.

RelationEntities List<RelationEntityMapConfig>

Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.

Класс EntityFilterMap 

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

Класс представляет из себя фильтр для запроса в базу данных.

Свойства 

ColumnName string

Название колонки, при нахождении которой будет срабатывать логика фильтрации.

Value object

Значение, с которым необходимо сравнение.

Класс QueryFunction
Сложный

Класс Terrasoft.Core.DB.QueryFunction реализует функцию выражения.

Идея функции выражения реализована в следующих классах:

  • QueryFunction — базовый класс функции выражения.
  • AggregationQueryFunction — реализует агрегирующую функцию выражения.
  • IsNullQueryFunction — заменяет значения null замещающим выражением.
  • CreateGuidQueryFunction — реализует функцию выражения нового идентификатора.
  • CurrentDateTimeQueryFunction — реализует функцию выражения текущей даты и времени.
  • CoalesceQueryFunction — возвращает первое выражение из списка аргументов, не равное null.
  • DatePartQueryFunction — реализует функцию выражения части значения типа Дата/Время.
  • DateAddQueryFunction — реализует функцию выражения даты, полученной путем добавления указанного промежутка времени к заданной дате.
  • DateDiffQueryFunction — реализует функцию выражения разницы дат, полученного путем вычитания заданных дат.
  • CastQueryFunction — приводит выражение аргумента к заданному типу данных.
  • UpperQueryFunction — преобразовывает символы выражения аргумента в верхний регистр.
  • CustomQueryFunction — реализует пользовательскую функцию.
  • DataLengthQueryFunction — определяет число байтов, использованных для представления выражения.
  • TrimQueryFunction — удаляет начальные и конечные пробелы из выражения.
  • LengthQueryFunction — возвращает длину выражения.
  • SubstringQueryFunction — получает часть строки.
  • ConcatQueryFunction — формирует строку, которая является результатом объединения строковых значений аргументов функции.
  • WindowQueryFunction — реализует функцию SQL окна.

Класс QueryFunction 

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

Базовый класс функции выражения.

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

Методы 

static QueryColumnExpression Negate(QueryFunction operand)

Возвращает выражение отрицания значения переданной функции.

Параметры
operand функция выражения
static QueryColumnExpression operator -(QueryFunction operand)

Перегрузка оператора отрицания переданной функции выражения.

Параметры
operand функция выражения
static QueryColumnExpression Add(QueryFunction leftOperand, QueryFunction rightOperand)

Возвращает выражение арифметического сложения переданных функций выражения.

Параметры
leftOperand левый операнд в операции сложения
rightOperand правый операнд в операции сложения
static QueryColumnExpression operator +(QueryFunction leftOperand, QueryFunction rightOperand)

Перегрузка оператора сложения двух функций выражений.

Параметры
leftOperand левый операнд в операции сложения
rightOperand правый операнд в операции сложения
static QueryColumnExpression Subtract(QueryFunction leftOperand, QueryFunction rightOperand)

Возвращает выражение вычитания правой функции выражения из левой.

Параметры
leftOperand левый операнд в операции вычитания
rightOperand правый операнд в операции вычитания
static QueryColumnExpression operator -(QueryFunction leftOperand, QueryFunction rightOperand)

Перегрузка оператора вычитания правой функции выражения из левой.

Параметры
leftOperand левый операнд в операции вычитания
rightOperand правый операнд в операции вычитания
static QueryColumnExpression Multiply(QueryFunction leftOperand, QueryFunction rightOperand)

Возвращает выражение умножения переданных функций выражений.

Параметры
leftOperand левый операнд в операции умножения
rightOperand правый операнд в операции умножения
static QueryColumnExpression operator *(QueryFunction leftOperand, QueryFunction rightOperand)

Перегрузка оператора умножения двух функций выражений.

Параметры
leftOperand левый операнд в операции умножения
rightOperand правый операнд в операции умножения
static QueryColumnExpression Divide(QueryFunction leftOperand, QueryFunction rightOperand)

Возвращает выражение деления левой функции выражения на правую.

Параметры
leftOperand левый операнд в операции деления
rightOperand правый операнд в операции деления
static QueryColumnExpression operator /(QueryFunction leftOperand, QueryFunction rightOperand)

Перегрузка оператора деления функций выражений.

Параметры
leftOperand левый операнд в операции деления
rightOperand правый операнд в операции деления
abstract object Clone()

Создает копию текущего экземпляра QueryFunction.

abstract void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием переданных экземпляра StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запросов к базе данных
virtual void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет переданную коллекцию параметров в аргументы функции.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
QueryColumnExpressionCollection GetQueryColumnExpressions()

Возвращает коллекцию выражений колонки запроса для текущей функции запроса.

QueryColumnExpression GetQueryColumnExpression()

Возвращает выражение колонки запроса для текущей функции запроса.

Класс AggregationQueryFunction 

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

Класс реализует агрегирующую функцию выражения.

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

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

AggregationQueryFunction()

Инициализирует новый экземпляр AggregationQueryFunction.

AggregationQueryFunction(AggregationTypeStrict aggregationType, QueryColumnExpression expression)

Инициализирует новый экземпляр AggregationQueryFunction с заданным типом агрегирующей функции для указанного выражения колонки.

Параметры
aggregationType тип агрегирующей функции
expression выражение колонки, к которому применяется агрегирующая функция
AggregationQueryFunction(AggregationTypeStrict aggregationType, IQueryColumnExpressionConvertible expression)

Инициализирует новый экземпляр AggregationQueryFunction с заданным типом агрегирующей функции для указанного выражения колонки.

Параметры
aggregationType тип агрегирующей функции
expression выражение колонки, к которому применяется агрегирующая функция
AggregationQueryFunction(AggregationQueryFunction source)

Инициализирует новый экземпляр AggregationQueryFunction, являющийся клоном переданной агрегирующей функции выражения.

Параметры
source агрегирующая функция выражения AggregationQueryFunction, клон которой создается

Свойства 

AggregationType AggregationTypeStrict

Тип агрегирующей функции.

AggregationEvalType AggregationEvalType

Область применения агрегирующей функции.

Expression QueryColumnExpression

Выражение аргумента функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запроса DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запросов к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет переданную коллекцию параметров в аргументы функции.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра AggregationQueryFunction.

AggregationQueryFunction All()

Устанавливает для текущей агрегирующей функции область применения Ко всем значениям.

AggregationQueryFunction Distinct()

Устанавливает для текущей агрегирующей функции область применения К уникальным значениям.

Класс IsNullQueryFunction 

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

Класс заменяет значения null замещающим выражением.

 

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

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

IsNullQueryFunction()

Инициализирует новый экземпляр IsNullQueryFunction.

IsNullQueryFunction(QueryColumnExpression checkExpression, QueryColumnExpression replacementExpression)
IsNullQueryFunction(IQueryColumnExpressionConvertible checkExpression, IQueryColumnExpressionConvertible replacementExpression)

Инициализирует новый экземпляр IsNullQueryFunction для заданных проверяемого выражения и замещающего выражения.

Параметры
checkExpression выражение, которое проверяется на равенство null
replacementExpression выражение, которое возвращается функцией, если checkExpression равно null
IsNullQueryFunction(IsNullQueryFunction source)

Инициализирует новый экземпляр IsNullQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source агрегирующая функция выражения IsNullQueryFunction, клон которой создается

Свойства 

CheckExpression QueryColumnExpression

Выражение аргумента функции, которое проверяется на равенство значению null.

ReplacementExpression QueryColumnExpression

Выражение аргумента функции, которое возвращается, если проверяемое выражение равно null.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запросов к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет переданную коллекцию параметров в аргументы функции.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра IsNullQueryFunction.

Класс CreateGuidQueryFunction 

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

Класс реализует функцию выражения нового идентификатора.

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

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

CreateGuidQueryFunction()

Инициализирует новый экземпляр CreateGuidQueryFunction.

CreateGuidQueryFunction(CreateGuidQueryFunction source)

Инициализирует новый экземпляр CreateGuidQueryFunction, являющийся клоном переданной функции.

Параметры
source функция CreateGuidQueryFunction, клон которой создается

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override object Clone()

Создает клон текущего экземпляра CreateGuidQueryFunction.

Класс CurrentDateTimeQueryFunction 

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

Класс реализует функцию выражения текущей даты и времени.

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

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

CurrentDateTimeQueryFunction()

Инициализирует новый экземпляр CurrentDateTimeQueryFunction.

CurrentDateTimeQueryFunction(CurrentDateTimeQueryFunction source)

Инициализирует новый экземпляр CurrentDateTimeQueryFunction, являющийся клоном переданной функции.

Параметры
source функция CurrentDateTimeQueryFunction, клон которой создается

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override object Clone()

Создает клон текущего экземпляра CurrentDateTimeQueryFunction.

Класс CoalesceQueryFunction 

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

Класс возвращает первое выражение из списка аргументов, не равное null.

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

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

CoalesceQueryFunction()

Инициализирует новый экземпляр CoalesceQueryFunction.

CoalesceQueryFunction(CoalesceQueryFunction source)

Инициализирует новый экземпляр CoalesceQueryFunction, являющийся клоном переданной функции.

Параметры
source функция CoalesceQueryFunction, клон которой создается
CoalesceQueryFunction(QueryColumnExpressionCollection expressions)

Инициализирует новый экземпляр CoalesceQueryFunction для переданной коллекции выражений колонок.

Параметры
expressions коллекция выражений колонок запроса
CoalesceQueryFunction(QueryColumnExpression[] expressions)
CoalesceQueryFunction(IQueryColumnExpressionConvertible[] expressions)

Инициализирует новый экземпляр CoalesceQueryFunction для переданного массива выражений колонок.

Параметры
expressions массив выражений колонок запроса

Свойства 

Expressions QueryColumnExpressionCollection

Коллекция выражений аргументов функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override object Clone()

Создает клон текущего экземпляра CoalesceQueryFunction.

override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции

Класс DatePartQueryFunction 

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

Класс реализует функцию выражения части значения типа Дата/Время.

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

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

DatePartQueryFunction()

Инициализирует новый экземпляр DatePartQueryFunction.

DatePartQueryFunction(DatePartQueryFunctionInterval interval, QueryColumnExpression expression)
DatePartQueryFunction(DatePartQueryFunctionInterval interval, IQueryColumnExpressionConvertible expression)

Инициализирует новый экземпляр DatePartQueryFunction с заданным выражением колонки типа Дата/Время и указанной частью даты.

Параметры
interval часть даты
expression выражение колонки типа Дата/Время
DatePartQueryFunction(DatePartQueryFunction source)

Инициализирует новый экземпляр DatePartQueryFunction, являющийся клоном переданной функции.

Параметры
source функция DatePartQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

Interval DatePartQueryFunctionInterval

Часть даты, возвращаемая функцией.

UseUtcOffset bool

Использование смещения всеобщего скоординированного времени (UTC) относительно заданного местного времени.

UtcOffset int?

Смещение всеобщего скоординированного времени (UTC).

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра DatePartQueryFunction.

Класс DateAddQueryFunction 

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

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

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

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

DateAddQueryFunction()

Инициализирует новый экземпляр DateAddQueryFunction.

DateAddQueryFunction(DatePartQueryFunctionInterval interval, int number, QueryColumnExpression expression)
DateAddQueryFunction(DatePartQueryFunctionInterval interval, IQueryColumnExpressionConvertible numberExpression, IQueryColumnExpressionConvertible expression)
DateAddQueryFunction(DatePartQueryFunctionInterval interval, int number, IQueryColumnExpressionConvertible expression)

Инициализирует экземпляр DateAddQueryFunction с заданными параметрами.

Параметры
interval часть даты, к которой добавляется временной промежуток
number значение, которое добавляется к interval
expression выражение колонки, содержащей исходную дату
DateAddQueryFunction(DateAddQueryFunction source)

Инициализирует экземпляр DateAddQueryFunction, являющийся клоном переданной функции.

Параметры
source экземпляр функции DateAddQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение колонки, содержащей исходную дату.

Interval DatePartQueryFunctionInterval

Часть даты, к которой добавляется временной промежуток.

Number int

Добавляемый временной промежуток.

NumberExpression QueryColumnExpression

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

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра DateAddQueryFunction.

Класс DateDiffQueryFunction 

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

Класс реализует функцию выражения разницы дат, полученного путем вычитания заданных дат.

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

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

DateDiffQueryFunction(DateDiffQueryFunctionInterval interval, QueryColumnExpression startDateExpression, QueryColumnExpression endDateExpression)
DateDiffQueryFunction(DateDiffQueryFunctionInterval interval, IQueryColumnExpressionConvertible startDateExpression, IQueryColumnExpressionConvertible endDateExpression)

Инициализирует экземпляр DateDiffQueryFunction с заданными параметрами.

Параметры
interval единица измерения разницы дат
startDateExpression выражение колонки, содержащей начальную дату
endDateExpression выражение колонки, содержащей конечную дату
DateDiffQueryFunction(DateDiffQueryFunction source)

Инициализирует экземпляр DateDiffQueryFunction, являющийся клоном переданной функции.

Параметры
source экземпляр функции DateDiffQueryFunction, клон которой создается

Свойства 

StartDateExpression QueryColumnExpression

Выражение колонки, содержащей начальную дату.

EndDateExpression QueryColumnExpression

Выражение колонки, содержащей конечную дату.

Interval DateDiffQueryFunctionInterval

Единица измерения разницы дат, возвращаемая функцией.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра DateDiffQueryFunction.

Класс CastQueryFunction 

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

Класс приводит выражение аргумента к заданному типу данных.

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

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

CastQueryFunction(QueryColumnExpression expression, DBDataValueType castType)
CastQueryFunction(IQueryColumnExpressionConvertible expression, DBDataValueType castType)

Инициализирует новый экземпляр CastQueryFunction с заданными выражением колонки и целевым типом данных.

Параметры
expression выражение колонки запроса
castType целевой тип данных
CastQueryFunction(CastQueryFunction source)

Инициализирует новый экземпляр CastQueryFunction, являющийся клоном переданной функции.

Параметры
source функция CastQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

CastType DBDataValueType

Целевой тип данных.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра CastQueryFunction.

Класс UpperQueryFunction 

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

Класс преобразовывает символы выражения аргумента в верхний регистр.

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

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

UpperQueryFunction()

Инициализирует новый экземпляр UpperQueryFunction.

UpperQueryFunction(QueryColumnExpression expression)
UpperQueryFunction(IQueryColumnExpressionConvertible expression)

Инициализирует новый экземпляр UpperQueryFunction для заданного выражения колонки.

Параметры
expression выражение колонки запроса
UpperQueryFunction(UpperQueryFunction source)

Инициализирует новый экземпляр UpperQueryFunction, являющийся клоном переданной функции.

Параметры
source функция UpperQueryFunction, клон которой создается

Свойства 

Expression

Выражение аргумента функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра UpperQueryFunction.

Класс CustomQueryFunction 

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

Класс реализует пользовательскую функцию.

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

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

CustomQueryFunction()

Инициализирует новый экземпляр CustomQueryFunction.

CustomQueryFunction(string functionName, QueryColumnExpressionCollection expressions)

Инициализирует новый экземпляр CustomQueryFunction для заданной функции и переданной коллекции выражений колонок.

Параметры
functionName имя функции
expressions коллекция выражений колонок запроса
CustomQueryFunction(string functionName, QueryColumnExpression[] expressions)
CustomQueryFunction(string functionName, IQueryColumnExpressionConvertible[] expressions)

Инициализирует новый экземпляр CustomQueryFunction для заданной функции и переданного массива выражений колонок.

Параметры
functionName имя функции
expressions массив выражений колонок запроса
CustomQueryFunction(CustomQueryFunction source)

Инициализирует новый экземпляр CustomQueryFunction, являющийся клоном переданной функции.

Параметры
source функция CustomQueryFunction, клон которой создается

Свойства 

Expressions QueryColumnExpressionCollection

Коллекция выражений аргументов функции.

FunctionName string

Имя функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет заданные параметры в коллекцию.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра CustomQueryFunction.

Класс DataLengthQueryFunction 

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

Класс определяет число байтов, использованных для представления выражения.

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

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

DataLengthQueryFunction()

Инициализирует новый экземпляр DataLengthQueryFunction.

DataLengthQueryFunction(QueryColumnExpression expression)

Инициализирует новый экземпляр DataLengthQueryFunction для заданного выражения колонки.

Параметры
expression выражение колонки запроса
DataLengthQueryFunction(IQueryColumnExpressionConvertible columnNameExpression)

Инициализирует новый экземпляр DataLengthQueryFunction для заданного выражения колонки.

Параметры
columnNameExpression выражение колонки запроса
DataLengthQueryFunction(DataLengthQueryFunction source)

Инициализирует новый экземпляр DataLengthQueryFunction, являющийся клоном переданной функции.

Параметры
source функция DataLengthQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра DataLengthQueryFunction.

Класс TrimQueryFunction 

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

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

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

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

TrimQueryFunction(QueryColumnExpression expression)
TrimQueryFunction(IQueryColumnExpressionConvertible expression)

Инициализирует новый экземпляр TrimQueryFunction для заданного выражения колонки.

Параметры
expression выражение колонки запроса
TrimQueryFunction(TrimQueryFunction source)

Инициализирует новый экземпляр TrimQueryFunction, являющийся клоном переданной функции.

Параметры
source функция TrimQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра TrimQueryFunction.

Класс LengthQueryFunction 

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

Класс возвращает длину выражения.

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

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

LengthQueryFunction()

Инициализирует новый экземпляр LengthQueryFunction.

LengthQueryFunction(QueryColumnExpression expression)
LengthQueryFunction(IQueryColumnExpressionConvertible expression)

Инициализирует новый экземпляр LengthQueryFunction для заданного выражения колонки.

Параметры
expression выражение колонки запроса
LengthQueryFunction(LengthQueryFunction source)

Инициализирует новый экземпляр LengthQueryFunction, являющийся клоном переданной функции.

Параметры
source функция LengthQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра LengthQueryFunction.

Класс SubstringQueryFunction 

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

Класс получает часть строки.

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

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

SubstringQueryFunction(QueryColumnExpression expression, int start, int length)
SubstringQueryFunction(IQueryColumnExpressionConvertible expression, int start, int length)

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

Параметры
expression выражение колонки запроса
start начальная позиция подстроки
length длина подстроки
SubstringQueryFunction(SubstringQueryFunction source)

Инициализирует новый экземпляр SubstringQueryFunction, являющийся клоном переданной функции.

Параметры
source функция SubstringQueryFunction, клон которой создается

Свойства 

Expression QueryColumnExpression

Выражение аргумента функции.

StartExpression QueryColumnExpression

Начальная позиция подстроки.

LengthExpression QueryColumnExpression

Длина подстроки.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра SubstringQueryFunction.

Класс ConcatQueryFunction 

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

Класс формирует строку, которая является результатом объединения строковых значений аргументов функции.

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

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

ConcatQueryFunction(QueryColumnExpressionCollection expressions)

Инициализирует новый экземпляр ConcatQueryFunction для переданной коллекции выражений.

Параметры
expressions коллекция выражений колонок запроса
ConcatQueryFunction(ConcatQueryFunction source)

Инициализирует новый экземпляр ConcatQueryFunction, являющийся клоном переданной функции.

Параметры
source функция ConcatQueryFunction, клон которой создается

Свойства 

Expressions QueryColumnExpressionCollection

Коллекция выражений аргументов функции.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра ConcatQueryFunction.

Класс WindowQueryFunction 

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

Класс реализует функцию SQL окна.

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

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

WindowQueryFunction(QueryFunction innerFunction)

Реализует функцию SQL окна.

Параметры
innerFunction вложенная функция
WindowQueryFunction(QueryFunction innerFunction, QueryColumnExpression partitionByExpression = null, QueryColumnExpression orderByExpression = null) : this(innerFunction)

Реализует функцию SQL окна.

Параметры
innerFunction вложенная функция
partitionByExpression выражение для разделения запроса
orderByExpression выражение для сортировки запроса
WindowQueryFunction(WindowQueryFunction source) : this( source.InnerFunction, source.PartitionByExpression, source.OrderByExpression)

Инициализирует новый экземпляр WindowQueryFunction, являющийся клоном переданной функции.

Параметры
source функция WindowQueryFunction, клон которой создается

Свойства 

InnerFunction QueryFunction

Функция для применения.

PartitionByExpression QueryColumnExpression

Разделение по пунктам.

OrderByExpression QueryColumnExpression

Сортировать по пункту.

Методы 

override void BuildSqlText(StringBuilder sb, DBEngine dbEngine)

Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.

Параметры
sb экземпляр StringBuilder, с помощью которого формируется текст запроса
dbEngine экземпляр построителя запроса к базе данных
override void AddUsingParameters(QueryParameterCollection resultParameters)

Добавляет в аргументы функции переданную коллекцию параметров.

Параметры
resultParameters коллекция параметров запроса, которые добавляются в аргументы функции
override object Clone()

Создает клон текущего экземпляра WindowQueryFunction.

Класс EntitySchemaQueryFunction
Сложный

Класс Terrasoft.Core.Entities.EntitySchemaQueryFunction реализует функцию выражения.

Идея функции выражения реализована в следующих классах:

  • EntitySchemaQueryFunction — базовый класс функции выражения запроса к схеме объекта.
  • EntitySchemaAggregationQueryFunction — реализует агрегирующую функцию выражения.
  • EntitySchemaIsNullQueryFunction — заменяет значения null замещающим выражением.
  • EntitySchemaCoalesceQueryFunction — возвращает первое выражение из списка аргументов, не равное null.
  • EntitySchemaCaseNotNullQueryFunctionWhenItem — класс, описывающий выражение условия sql-оператора CASE.
  • EntitySchemaCaseNotNullQueryFunctionWhenItems — коллекция выражений условий sql-оператора CASE.
  • 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.

Базовый класс функции выражения запроса к схеме объекта.

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

Методы 

abstract QueryColumnExpression CreateQueryColumnExpression(DBSecurityEngine dbSecurityEngine)

Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.

Параметры
dbSecurityEngine объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа
abstract DataValueType GetResultDataValueType(DataValueTypeManager dataValueTypeManager)

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

Параметры
dataValueTypeManager менеджер типов данных
abstract bool GetIsSupportepataValueType(DataValueType dataValueType)

Определяет, имеет ли возвращаемый функцией результат указанный тип данных.

Параметры
dataValueType тип данных
abstract string GetCaption()

Возвращает заголовок функции выражения.

virtual EntitySchemaQueryExpressionCollection GetArguments()

Возвращает коллекцию выражений аргументов функции.

void CheckIsSupportepataValueType(DataValueType dataValueType)

Проверяет, имеет ли возвращаемый функцией результат указанный тип данных. В противном случае генерируется исключение.

Параметры
dataValueType тип данных

Класс EntitySchemaAggregationQueryFunction 

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

Класс реализует агрегирующую функцию выражения.

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

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

EntitySchemaAggregationQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует экземпляр EntitySchemaAggregationQueryFunction заданного типа агрегирующей функции для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaAggregationQueryFunction(AggregationTypeStrict aggregationType, EntitySchemaQuery parentQuery)

Инициализирует экземпляр EntitySchemaAggregationQueryFunction заданного типа агрегирующей функции для заданного запроса к схеме объекта.

Параметры
aggregationType тип агрегирующей функции
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaAggregationQueryFunction(AggregationTypeStrict aggregationType, EntitySchemaQueryExpression expression, EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaAggregationQueryFunction для заданных типа агрегирующей функции, выражения и запроса к схеме объекта.

Параметры
aggregationType тип агрегирующей функции
expression выражение запроса
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaAggregationQueryFunction(EntitySchemaAggregationQueryFunction source)

Инициализирует новый экземпляр EntitySchemaAggregationQueryFunction, являющийся клоном переданного экземпляра агрегирующей функции выражения.

Параметры
source экземпляр агрегирующей функции выражения, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

AggregationType AggregationTypeStrict

Тип агрегирующей функции.

AggregationEvalType AggregationEvalType

Область применения агрегирующей функции.

Expression EntitySchemaQueryExpression

Выражение аргумента агрегирующей функции.

Методы 

override void WriteMetaData(DataWriter writer)

Выполняет сериализацию агрегирующей функции, используя заданный экземпляр Terrasoft.Common.DataWriter.

Параметры
writer экземпляр Terrasoft.Common.DataWriter, с помощью которого выполняется сериализация
override QueryColumnExpression CreateQueryColumnExpression(DBSecurityEngine dbSecurityEngine)

Возвращает выражение колонки запроса для агрегирующей функции, сформированное с учетом заданных прав доступа.

Параметры
dbSecurityEngine объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа
override EntitySchemaQueryExpressionCollection GetArguments()

Возвращает коллекцию выражений аргументов агрегирующей функции.

override DataValueType GetResultDataValueType(DataValueTypeManager dataValueTypeManager)

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

Параметры
dataValueTypeManager менеджер типов данных
override bool GetIsSupportepataValueType(DataValueType dataValueType)

Определяет, имеет ли возвращаемый агрегирующей функцией результат указанный тип данных.

Параметры
dataValueType тип данных
override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaAggregationQueryFunction.

EntitySchemaAggregationQueryFunction All()

Устанавливает для текущей агрегирующей функции область применения Ко всем значениям.

EntitySchemaAggregationQueryFunction Distinct()

Устанавливает для текущей агрегирующей функции область применения К уникальным значениям.

Класс EntitySchemaIsNullQueryFunction 

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

Класс заменяет значения null замещающим выражением.

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

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

EntitySchemaIsNullQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует экземпляр EntitySchemaIsNullQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaIsNullQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression checkExpression, EntitySchemaQueryExpression replacementExpression)

Инициализирует новый экземпляр EntitySchemaIsNullQueryFunction для заданных запроса к схеме объекта, проверяемого выражения и замещающего выражения.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
checkExpression выражение, которое проверяется на равенство null
replacementExpression выражение, которое возвращается функцией, если checkExpression равно null
EntitySchemaIsNullQueryFunction(EntitySchemaIsNullQueryFunction source)

Инициализирует новый экземпляр EntitySchemaIsNullQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaIsNullQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

CheckExpression EntitySchemaQueryExpression

Выражение аргумента функции, которое проверяется на равенство значению null.

ReplacementExpression EntitySchemaQueryExpression

Выражение аргумента функции, которое возвращается, если проверяемое выражение равно null.

Методы 

override void WriteMetaData(DataWriter writer)

Выполняет сериализацию функции выражения, используя переданный экземпляр DataWriter.

Параметры
writer экземпляр DataWriter, с помощью которого выполняется сериализация функции выражения
override QueryColumnExpression CreateQueryColumnExpression(DBSecurityEngine dbSecurityEngine)

Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.

Параметры
dbSecurityEngine объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа
override EntitySchemaQueryExpressionCollection GetArguments()

Возвращает коллекцию выражений аргументов функции.

override DataValueType GetResultDataValueType(DataValueTypeManager dataValueTypeManager)

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

Параметры
dataValueTypeManager менеджер типов данных

Класс EntitySchemaCoalesceQueryFunction 

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

Класс возвращает первое выражение из списка аргументов, не равное null.

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

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

EntitySchemaCoalesceQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaCoalesceQueryFunction для заданного запроса к схеме объекта.

Параметры
aggregationType тип агрегирующей функции
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCoalesceQueryFunction(EntitySchemaCoalesceQueryFunction source)

Инициализирует новый экземпляр EntitySchemaCoalesceQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCoalesceQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expressions EntitySchemaQueryExpressionCollection

Коллекция выражений аргументов функции.

HasExpressions bool

Признак, определяющий наличие хотя бы одного элемента в коллекции выражений аргументов функции.

Методы 

override bool GetIsSupportepataValueType(DataValueType dataValueType)

Определяет, имеет ли возвращаемый функцией результат указанный тип данных.

Параметры
dataValueType тип данных

Класс EntitySchemaCaseNotNullQueryFunctionWhenItem 

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

Класс, описывающий выражение условия sql-оператора CASE.

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

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

EntitySchemaCaseNotNullQueryFunctionWhenItem()

Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem.

EntitySchemaCaseNotNullQueryFunctionWhenItem(EntitySchemaQueryExpression whenExpression, EntitySchemaQueryExpression thenExpression)

Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem для заданных выражений предложений WHEN и THEN.

Параметры
whenExpression выражение предложения WHEN условия
thenExpression выражение предложения THEN условия
EntitySchemaCaseNotNullQueryFunctionWhenItem(EntitySchemaCaseNotNullQueryFunctionWhenItem source)

Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItem, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCaseNotNullQueryFunctionWhenItem, клон которой создается

Свойства 

WhenExpression EntitySchemaQueryExpression

Выражение предложения WHEN.

ThenExpression EntitySchemaQueryExpression

Выражение предложения THEN.

Класс EntitySchemaCaseNotNullQueryFunctionWhenItems 

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

Класс реализует коллекцию выражений условий sql-оператора CASE.

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

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

EntitySchemaCaseNotNullQueryFunctionWhenItems()

Инициализирует экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItems.

EntitySchemaCaseNotNullQueryFunctionWhenItems(EntitySchemaCaseNotNullQueryFunctionWhenItems source)

Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunctionWhenItems, являющийся клоном клоном переданной коллекции условий.

Параметры
source коллекция условий, клон которой создается

Класс EntitySchemaCaseNotNullQueryFunction 

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

Класс возвращает одно из множества возможных значений в зависимости от указанных условий.

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

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

CurrentDateTimeQueryFunction()

Инициализирует новый экземпляр CurrentDateTimeQueryFunction.

EntitySchemaCaseNotNullQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCaseNotNullQueryFunction(EntitySchemaCaseNotNullQueryFunction source)

Инициализирует новый экземпляр EntitySchemaCaseNotNullQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCaseNotNullQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

WhenItems EntitySchemaCaseNotNullQueryFunctionWhenItems

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

HasWhenItems bool

Признак, имеет ли функция хотя бы одно условие.

ElseExpression EntitySchemaQueryExpression

Выражение предложения ELSE.

Методы 

void SpecifyQueryAlias(string queryAlias)

Определяет для текущей функции выражения заданный псевдоним в результирующем sql-запросе.

Параметры
queryAlias псевдоним, определяемый для текущей функции

Класс EntitySchemaSystemValueQueryFunction 

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

Класс возвращает выражение системного значения.

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

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

SystemValueName string

Имя системного значения.

Класс EntitySchemaCurrentDateTimeQueryFunction 

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

Класс реализует функцию выражения текущей даты и времени.

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

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

EntitySchemaCurrentDateTimeQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует экземпляр EntitySchemaCurrentDateTimeQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCurrentDateTimeQueryFunction(EntitySchemaCurrentDateTimeQueryFunction source)

Инициализирует экземпляр EntitySchemaCurrentDateTimeQueryFunction, являющийся клоном переданной функции.

Параметры
source экземпляр функции EntitySchemaCurrentDateTimeQueryFunction, клон которой создается

Свойства 

SystemValueName string

Имя системного значения.

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaCurrentDateTimeQueryFunction.

Класс EntitySchemaBaseCurrentDateQueryFunction 

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

Базовый класс функции выражения для базовой даты.

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

Свойства 

SystemValueName string

Имя системного значения.

Offset int

Смещение.

Класс EntitySchemaCurrentDateQueryFunction 

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

Класс реализует функцию выражения текущей даты.

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

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

EntitySchemaCurrentDateQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaCurrentDateQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaCurrentDateQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaCurrentDateQueryFunction(EntitySchemaCurrentDateQueryFunction source)

Инициализирует экземпляр EntitySchemaCurrentDateQueryFunction, являющийся клоном переданной функции.

Параметры
source Экземпляр функции EntitySchemaCurrentDateQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaCurrentDateQueryFunction.

Класс EntitySchemaDateToCurrentYearQueryFunction 

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

Класс реализует функцию, которая конвертирует выражение даты в такую же дату текущего года.

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

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

EntitySchemaDateToCurrentYearQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaDateToCurrentYearQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression)

Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expression выражение запроса
EntitySchemaDateToCurrentYearQueryFunction(EntitySchemaDateToCurrentYearQueryFunction source)

Инициализирует новый экземпляр EntitySchemaDateToCurrentYearQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaDateToCurrentYearQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expression EntitySchemaQueryExpression

Выражение аргументов функции.

Класс EntitySchemaStartOfCurrentWeekQueryFunction 

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

Класс реализует функцию выражения текущей даты.

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

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

EntitySchemaStartOfCurrentWeekQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaStartOfCurrentWeekQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentWeekQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaStartOfCurrentWeekQueryFunction(EntitySchemaStartOfCurrentWeekQueryFunction source) : base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentWeekQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentWeekQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentWeekQueryFunction.

Класс EntitySchemaStartOfCurrentMonthQueryFunction 

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

Класс реализует функцию выражения даты начала текущего месяца.

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

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

EntitySchemaStartOfCurrentMonthQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaStartOfCurrentMonthQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentMonthQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaStartOfCurrentMonthQueryFunction(EntitySchemaStartOfCurrentMonthQueryFunction source) : base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentMonthQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentMonthQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentMonthQueryFunction.

Класс EntitySchemaStartOfCurrentQuarterQueryFunction 

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

Класс реализует функцию выражения даты начала текущего месяца.

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

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

EntitySchemaStartOfCurrentQuarterQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaStartOfCurrentQuarterQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentQuarterQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaStartOfCurrentQuarterQueryFunction(EntitySchemaStartOfCurrentQuarterQueryFunction source) : base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentQuarterQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentQuarterQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentQuarterQueryFunction.

Класс EntitySchemaStartOfCurrentHalfYearQueryFunction 

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

Класс реализует функцию выражения даты начала текущего полугодия.

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

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

EntitySchemaStartOfCurrentHalfYearQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaStartOfCurrentHalfYearQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentHalfYearQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaStartOfCurrentHalfYearQueryFunction(EntitySchemaStartOfCurrentHalfYearQueryFunction source) : base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentHalfYearQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentHalfYearQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentHalfYearQueryFunction.

Класс EntitySchemaStartOfCurrentYearQueryFunction 

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

Класс реализует функцию выражения даты начала текущего года.

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

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

EntitySchemaStartOfCurrentYearQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : this(parentQuery, null, offset)
EntitySchemaStartOfCurrentYearQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : base(parentQuery, expression, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentYearQueryFunction с указанным смещением относительно базовой даты для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
offset смещение в днях относительно контрольной даты. Значение по умолчанию - 0
expression выражение запроса
EntitySchemaStartOfCurrentYearQueryFunction(EntitySchemaStartOfCurrentYearQueryFunction source) : base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentYearQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentYearQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentHalfYearQueryFunction.

Класс EntitySchemaBaseCurrentDateTimeQueryFunction 

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

Базовый класс функции выражения базовых даты и времени.

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

Свойства 

SystemValueName string

Имя системного значения.

Класс EntitySchemaStartOfCurrentHourQueryFunction 

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

Класс реализует функцию выражения начала текущего часа.

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

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

EntitySchemaStartOfCurrentHourQueryFunction(EntitySchemaQuery parentQuery, int offset = 0) : base(parentQuery, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, который является частью parentQuery и указан offset относительно базовой даты.

Параметры
parentQuery экземпляр EntitySchemaQuery
offset смещение в часах относительно базовой даты
EntitySchemaStartOfCurrentHourQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, int offset = 0) : this(parentQuery, offset)

Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, который является частью parentQuery, имеет указанные аргументы expression и offset относительно базовой даты.

Параметры
parentQuery экземпляр EntitySchemaQuery
expression выражение аргумента функции
offset смещение в часах относительно базовой даты
EntitySchemaStartOfCurrentHourQueryFunction(EntitySchemaStartOfCurrentHourQueryFunction source)	: base(source)

Инициализирует экземпляр EntitySchemaStartOfCurrentHourQueryFunction, являющийся клоном переданной функции выражения.

Параметры
source экземпляр функции EntitySchemaStartOfCurrentHourQueryFunction, клон которой создается

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaStartOfCurrentHourQueryFunction.

Класс EntitySchemaCurrentTimeQueryFunction 

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

Класс реализует функцию выражения текущего времени.

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

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

EntitySchemaCurrentTimeQueryFunction(EntitySchemaQuery parentQuery) : base(parentQuery)

Инициализирует новый экземпляр EntitySchemaCurrentTimeQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCurrentTimeQueryFunction(EntitySchemaCurrentTimeQueryFunction source) : base(source)

Инициализирует новый экземпляр EntitySchemaCurrentTimeQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCurrentTimeQueryFunction, клон которой создается

Свойства 

SystemValueName string

Имя системного значения.

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaCurrentTimeQueryFunction.

Класс EntitySchemaCurrentUserQueryFunction 

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

Класс реализует функцию выражения текущего пользователя.

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

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

EntitySchemaCurrentUserQueryFunction(EntitySchemaQuery parentQuery) : base(parentQuery)

Инициализирует новый экземпляр EntitySchemaCurrentUserQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCurrentUserQueryFunction(EntitySchemaCurrentUserQueryFunction source) : base(source)

Инициализирует новый экземпляр EntitySchemaCurrentUserQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCurrentUserQueryFunction, клон которой создается

Свойства 

SystemValueName string

Имя системного значения.

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaCurrentUserQueryFunction.

Класс EntitySchemaCurrentUserContactQueryFunction 

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

Класс реализует функцию выражения контакта текущего пользователя.

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

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

EntitySchemaCurrentUserContactQueryFunction(EntitySchemaQuery parentQuery) : base(parentQuery)

Инициализирует новый экземпляр EntitySchemaCurrentUserContactQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCurrentUserContactQueryFunction(EntitySchemaCurrentUserContactQueryFunction source) : base(source)

Инициализирует новый экземпляр EntitySchemaCurrentUserContactQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCurrentUserContactQueryFunction, клон которой создается

Свойства 

SystemValueName string

Имя системного значения.

Методы 

override string GetCaption()

Возвращает заголовок функции выражения.

override object Clone()

Создает клон текущего экземпляра EntitySchemaCurrentUserContactQueryFunction.

Класс EntitySchemaCurrentUserAccountQueryFunction 

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

Класс реализует функцию выражения контрагента текущего пользователя.

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

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

EntitySchemaCurrentUserAccountQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaCurrentUserAccountQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaCurrentUserAccountQueryFunction(EntitySchemaCurrentUserAccountQueryFunction source)

Инициализирует новый экземпляр EntitySchemaCurrentUserAccountQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCurrentUserAccountQueryFunction, клон которой создается

Свойства 

SystemValueName string

Имя системного значения.

Класс EntitySchemaDatePartQueryFunction 

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

Класс реализует функцию запроса для части даты.

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

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

EntitySchemaDatePartQueryFunction(EntitySchemaQuery parentQuery) : base(parentQuery)

Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery экземпляр EntitySchemaQuery
EntitySchemaDatePartQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaDatePartQueryFunctionInterval interval, EntitySchemaQueryExpression expression) : base(parentQuery)

Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction, который является частью parentQuery с указанной частью даты interval для запроса к схеме сущности и выражению запроса expression.

Параметры
parentQuery экземпляр EntitySchemaQuery
interval часть даты
expression выражение запроса
EntitySchemaDatePartQueryFunction(EntitySchemaDatePartQueryFunction source) : base(source)

Инициализирует новый экземпляр EntitySchemaDatePartQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaDatePartQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

EntitySchemaDatePartQueryFunctionInterval Interval

Часть даты, возвращаемая функцией.

EntitySchemaQueryExpression Expression

Выражение аргумента функции.

Методы 

override void WriteMetaData(DataWriter writer)

Выполняет сериализацию функции, используя заданный экземпляр Terrasoft.Common.DataWriter.

Параметры
writer экземпляр Terrasoft.Common.DataWriter, с помощью которого выполняется сериализация
override QueryColumnExpression CreateQueryColumnExpression(DBSecurityEngine dbSecurityEngine)

Возвращает выражение колонки запроса для текущей функции, сформированное с учетом заданных прав доступа.

Параметры
dbSecurityEngine объект Terrasoft.Core.DB.DBSecurityEngine, определяющий права доступа
override DataValueType GetResultDataValueType(DataValueTypeManager dataValueTypeManager)

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

Параметры
dataValueTypeManager менеджер типов данных
override bool GetIsSupportedDataValueType(DataValueType dataValueType)

Определяет, имеет ли возвращаемый функцией результат указанный тип данных.

Параметры
dataValueType тип данных
override string GetCaption()

Возвращает заголовок функции выражения.

override EntitySchemaQueryExpressionCollection GetArguments()

Возвращает коллекцию выражений аргументов функции.

override object Clone()

Создает клон текущего экземпляра EntitySchemaUpperQueryFunction.

Класс EntitySchemaUpperQueryFunction 

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

Класс преобразовывает символы выражения аргумента к верхнему регистру.

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

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

EntitySchemaUpperQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaUpperQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaUpperQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression)

Инициализирует новый экземпляр EntitySchemaUpperQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expression выражение запроса
EntitySchemaUpperQueryFunction(EntitySchemaUpperQueryFunction source)

Инициализирует новый экземпляр EntitySchemaUpperQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaUpperQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expression EntitySchemaQueryExpression

Выражение аргументов функции.

Класс EntitySchemaCastQueryFunction 

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

Класс приводит выражение аргумента к заданному типу данных.

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

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

EntitySchemaCastQueryFunction(EntitySchemaQuery parentQuery, DBDataValueType castType)

Инициализирует новый экземпляр EntitySchemaCastQueryFunction для заданного запроса к схеме объекта с указанным целевым типом данных.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
castType целевой тип данных
EntitySchemaCastQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression, DBDataValueType castType)

Инициализирует новый экземпляр EntitySchemaCastQueryFunction с заданными выражением и целевым типом данных.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expression выражение запроса
castType целевой тип данных
EntitySchemaCastQueryFunction(EntitySchemaCastQueryFunction source)

Инициализирует новый экземпляр EntitySchemaCastQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaCastQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expression EntitySchemaQueryExpression

Выражение аргумента функции.

CastType DBDataValueType

Целевой тип данных.

Класс EntitySchemaTrimQueryFunction 

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

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

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

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

EntitySchemaTrimQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaTrimQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaTrimQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression)

Инициализирует новый экземпляр EntitySchemaTrimQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expression выражение запроса
EntitySchemaTrimQueryFunction(EntitySchemaTrimQueryFunction source)

Инициализирует новый экземпляр EntitySchemaTrimQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaTrimQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expression EntitySchemaQueryExpression

Выражение аргументов функции.

Класс EntitySchemaLengthQueryFunction 

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

Класс возвращает длину выражения.

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

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

EntitySchemaLengthQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaLengthQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaLengthQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression expression)

Инициализирует новый экземпляр EntitySchemaLengthQueryFunction для заданного запроса к схеме объекта и переданного выражения даты.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expression выражение запроса
EntitySchemaLengthQueryFunction(EntitySchemaLengthQueryFunction source)

Инициализирует новый экземпляр EntitySchemaLengthQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaLengthQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expression EntitySchemaQueryExpression

Выражение аргументов функции.

Класс EntitySchemaConcatQueryFunction 

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

Класс формирует строку, которая является результатом объединения строковых значений аргументов функции.

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

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

EntitySchemaConcatQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaConcatQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaConcatQueryFunction(EntitySchemaQuery parentQuery, EntitySchemaQueryExpression[] expressions)

Инициализирует новый экземпляр EntitySchemaConcatQueryFunction для заданных массива выражений и запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
expressions массив выражений
EntitySchemaConcatQueryFunction(EntitySchemaConcatQueryFunction source)

Инициализирует новый экземпляр EntitySchemaConcatQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaConcatQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

Expressions EntitySchemaQueryExpressionCollection

Коллекция выражений аргументов функции.

HasExpressions bool

Признак, определяющий наличие хотя бы одного элемента в коллекции выражений аргументов функции.

Класс EntitySchemaWindowQueryFunction 

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

Класс реализует функцию SQL окна.

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

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

EntitySchemaWindowQueryFunction(EntitySchemaQuery parentQuery)

Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.

Параметры
parentQuery запрос к схеме объекта, которому принадлежит функция
EntitySchemaWindowQueryFunction(EntitySchemaQueryExpression function, EntitySchemaQuery esq)

Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.

Параметры
function вложенная функция запроса
esq запрос к схеме объекта
EntitySchemaWindowQueryFunction(EntitySchemaQueryExpression function, EntitySchemaQuery esq, EntitySchemaQueryExpression partitionBy = null, EntitySchemaQueryExpression orderBy = null)

Инициализирует новый экземпляр EntitySchemaWindowQueryFunction для заданного запроса к схеме объекта.

Параметры
function вложенная функция запроса
parentQuery запрос к схеме объекта, которому принадлежит функция
partitionBy выражение для разделения запроса
orderBy выражение для сортировки запроса
EntitySchemaWindowQueryFunction(EntitySchemaQueryFunction source)

Инициализирует новый экземпляр EntitySchemaWindowQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaQueryFunction, клон которой создается
EntitySchemaWindowQueryFunction(EntitySchemaWindowQueryFunction source)

Инициализирует новый экземпляр EntitySchemaWindowQueryFunction, являющийся клоном переданной функции.

Параметры
source функция EntitySchemaWindowQueryFunction, клон которой создается

Свойства 

QueryAlias string

Псевдоним функции в sql-запросе.

InnerFunction EntitySchemaQueryExpression

Функция для применения.

PartitionByExpression EntitySchemaQueryExpression

Разделение по пунктам.

OrderByExpression EntitySchemaQueryExpression

Сортировать по пункту.