EntitySchemaQuery.CreateFilter(FilterComparisonType,EntitySchemaQueryExpression,EntitySchemaQueryMacrosType,DateTime) - метод Смотри также Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс > CreateFilter - метод : CreateFilter(FilterComparisonType,EntitySchemaQueryExpression,EntitySchemaQueryMacrosType,DateTime) - метод C#
- comparisonType
- Тип сравнения.
- leftExpression
- Выражение в левой части фильтра.
- macrosType
- Тип макроса.
- rightValue
- Значение типа System.DateTime, которое обрабатывается макросом в правой части фильтра.
Glossary Item Box
Параметры
- comparisonType
- Тип сравнения.
- leftExpression
- Выражение в левой части фильтра.
- macrosType
- Тип макроса.
- rightValue
- Значение типа System.DateTime, которое обрабатывается макросом в правой части фильтра.
Тип возвращаемого значения
Экземпляр созданного фильтра.Исключение | Описание |
---|---|
Terrasoft.Common.UnsupportedTypeException | Если в качестве параметра macrosType передан неподдерживаемый тип макроса. |
Данный метод работает только с типом макроса [Точное время] (EntitySchemaQueryMacrosType.HourMinute). При передаче в качестве параметра macrosType любого другого типа макроса будет генерироваться исключение.
В данном примере создается запрос, который выбирает контакты, время модификации которых меньше или равна заданному значению.
// Создание экземпляра менеджера схем объектов. EntitySchemaManager esqManager = UserConnection.EntitySchemaManager; // Создание экземпляра EntitySchemaQuery. var esqResult = new EntitySchemaQuery(esqManager, "Contact"); esqResult.AddColumn("Id"); esqResult.AddColumn("Name"); // Создание экземпляра выражения левой части фильтра для колонки "ModifiedOn". var esqLeftExpression = new EntitySchemaQueryExpression(esqResult .CreateSchemaColumnExpression("ModifiedOn")); // В качестве типа макроса выбирается тип [Точное время]. var esqMacrosType = EntitySchemaQueryMacrosType.HourMinute; // Создание выражения типа Дата/Время. var esqRightValue = new DateTime(); // Создание экземпляра фильтра с заданными параметрами. var esqFilter = esqResult.CreateFilter(FilterComparisonType.LessOrEqual, esqLeftExpression, esqMacrosType, esqRightValue); // Добавление фильтра в коллекцию фильтров результирующего запроса. esqResult.Filters.Add(esqFilter); // Получение текста результирующего sql-запроса. string esqSqlText = esqResult.GetSelectQuery(UserConnection).GetSqlText(); // Текст результирующего sql-запроса. // MS SQL: // SELECT // [Contact].[Id] [Id], // [Contact].[Name] [Name] // FROM // [dbo].[Contact] [Contact] // WHERE // CAST([Contact].[ModifiedOn] AS TIME) < @P1 // Oracle: // SELECT // "Contact"."Id" "Id", // "Contact"."Name" "Name" // FROM // "Contact" "Contact" // WHERE // CAST("Contact"."ModifiedOn" AS TIME) < :P1 |