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] |