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

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

Возвращает фильтр с заданным типом сравнения для заданных выражения левой части фильтра, типа макроса и значения типа System.DateTime, которое обрабатывается макросом в правой части фильтра.

Синтаксис

Параметры

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 

Смотри также

© Terrasoft 2002-2016.

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

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