Creatio development guide
Это документация Creatio версии 7.8.0. Мы рекомендуем использовать новую версию документации.

EntitySchemaQuery.CreateFilter(FilterComparisonType,String,AggregationTypeStrict,Int32) - метод Смотри также  Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс > CreateFilter - метод : CreateFilter(FilterComparisonType,String,AggregationTypeStrict,Int32) - метод C#

comparisonType
Тип сравнения.
leftExprColumnPath
Путь к колонке, содержащей выражение левой части фильтра.
leftExprAggregationType
Тип агрегирующей функции.
rightExprParameterValue
Значение параметра, к которому применяется агрегирующая функция в правой части фильтра.

Glossary Item Box

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

Синтаксис

Параметры

comparisonType
Тип сравнения.
leftExprColumnPath
Путь к колонке, содержащей выражение левой части фильтра.
leftExprAggregationType
Тип агрегирующей функции.
rightExprParameterValue
Значение параметра, к которому применяется агрегирующая функция в правой части фильтра.

Тип возвращаемого значения

Экземпляр созданного фильтра IEntitySchemaQueryFilterItem.

Пример

В данном примере создается запрос, который возвращает идентификаторы стран, которые имеют 3 и более города.
// Создание экземпляра менеджера схем объектов.
EntitySchemaManager esqManager = UserConnection.EntitySchemaManager;

// Создание экземпляра результирующего запроса.
var esqResult = new EntitySchemaQuery(esqManager, "Country");
esqResult.AddColumn("Id");

// Создание экземпляра фильтра с заданными параметрами.
var filter = esqResult.CreateFilter(FilterComparisonType.GreaterOrEqual, "[City:Country].Name",
                                    AggregationTypeStrict.Count, 3);

// Получение экземпляра результирующего sql-запроса на выборку данных.
var resultSelectQuery = esqResult.GetSelectQuery(UserConnection);

// Параметры в запрос будут добавляться как значения.
resultSelectQuery.BuildParametersAsValue = true;

// Добавление фильтра в коллекцию фильтров результирующего запроса.
esqResult.Filters.Add(filter);

// Получение текста результирующего sql-запроса.
string esqSqlText = resultSelectQuery.GetSqlText();

// Текст результирующего sql-запроса:

// MS SQL:
// SELECT
//          [Country].[Id] [Id]
// FROM
//          [dbo].[Country] [Country]
// WHERE
//          (
//              SELECT
//                      COUNT([SubCity].[Id]) [Count]
//              FROM
//                      [dbo].[City] [SubCity]
//              WHERE
//                      [SubCity].[CountryId] = [Country].[Id]) >= 3

// Oracle:
// SELECT
//          "Country"."Id" "Id"
// FROM
//          "Country" "Country"
// WHERE
//          (
//              SELECT
//                      COUNT("SubCity"."Id") "Count"
//              FROM
//                      "City" "SubCity"
//              WHERE
//                      "SubCity"."CountryId" = "Country"."Id") >= 3 

Смотри также

© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?