EntitySchemaQuery.CreateFilter(FilterComparisonType,EntitySchemaQueryExpression,EntitySchemaQueryMacrosType,DayOfWeek) - метод Смотри также Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс > CreateFilter - метод : CreateFilter(FilterComparisonType,EntitySchemaQueryExpression,EntitySchemaQueryMacrosType,DayOfWeek) - метод C#
- comparisonType
- Тип сравнения.
- leftExpression
- Выражение в левой части фильтра.
- macrosType
- Тип макроса.
- rightValue
- Значение типа System.DayOfWeek, которое обрабатывается макросом в правой части фильтра.
Glossary Item Box
Параметры
- comparisonType
- Тип сравнения.
- leftExpression
- Выражение в левой части фильтра.
- macrosType
- Тип макроса.
- rightValue
- Значение типа System.DayOfWeek, которое обрабатывается макросом в правой части фильтра.
Тип возвращаемого значения
Экземпляр созданного фильтра IEntitySchemaQueryFilterItem.Исключение | Описание |
---|---|
Terrasoft.Common.UnsupportedTypeException | Если в качестве параметра macrosType передан неподдерживаемый тип макроса. |
Данный метод работает только с типом макроса [День недели] (EntitySchemaQueryMacrosType.DayOfWeek). При передаче в качестве параметра macrosType любого другого типа макроса будет генерироваться исключение.
В данном примере создается запрос, в котором выбираются контакты, которые были созданы в понедельник. При выполнении данного запроса значение параметра P1 будет равно 1.
// Создание экземпляра менеджера схем объектов. EntitySchemaManager esqManager = UserConnection.EntitySchemaManager; // Создание экземпляра EntitySchemaQuery. var esqResult = new EntitySchemaQuery(esqManager, "Contact"); esqResult.AddColumn("Id"); esqResult.AddColumn("Name"); // Создание экземпляра выражения левой части фильтра для колонки "CreatedOn". var esqLeftExpression = new EntitySchemaQueryExpression(esqResult .CreateSchemaColumnExpression("CreatedOn")); // В качестве типа макроса выбирается тип [День недели]. var esqMacrosType = EntitySchemaQueryMacrosType.DayOfWeek; // Создание выражения типа [День недели]. var esqRightValue = DayOfWeek.Monday; // Создание экземпляра фильтра с заданными параметрами. var esqFilter = esqResult.CreateFilter(FilterComparisonType.Equal, 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 // DATEPART(WEEKDAY, [Contact].[CreatedOn]) = @P1 |