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

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

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

Glossary Item Box

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

Синтаксис

Параметры

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

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

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

Пример

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

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

// Создание экземпляра подзапроса правой части фильтра.
EntitySchemaQuery subEsq = null;

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

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

string esqSqlText = esqResult.GetSelectQuery(UserConnection).GetSqlText();
string subEsqSqlText = subEsq.GetSelectQuery(UserConnection).GetSqlText();

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

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

// Текст sql-подзапроса, содержащего агрегирующее выражение.

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

Смотри также

© Terrasoft 2002-2016.

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

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