EntitySchemaQuery.CreateMonthFunction - метод Смотри также Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс : CreateMonthFunction - метод C#
- columnPath
- Путь к колонке относительно корневой схемы.
Glossary Item Box
public EntitySchemaDatePartQueryFunction CreateMonthFunction( string columnPath )
Параметры
- columnPath
- Путь к колонке относительно корневой схемы.
Тип возвращаемого значения
Экземпляр созданной функции EntitySchemaDatePartQueryFunction.В данном примере демонстрируется создание запроса, который возвращает имена и дату создания контактов, созданных в феврале текущего года.
// Получение экземпляра менеджера схем объектов. EntitySchemaManager esqManager = UserConnection.EntitySchemaManager; // Создание экземпляра запроса с корневой схемой "Contact". var esqResult = new EntitySchemaQuery(esqManager, "Contact"); esqResult.AddColumn("Name"); esqResult.AddColumn("CreatedOn"); // Создание экземпляра функции для колонки "CreatedOn". var esqCreateMonthFunction = esqResult.CreateMonthFunction("CreatedOn"); // Содание экземпляра выражения параметра со значением 2 (номер месяца февраль). var esqParameter = EntitySchemaQuery.CreateParameterExpression(2); // Создание фильтра для выборки контактов по номеру месяца даты создания. var esqMonthFilter = new EntitySchemaQueryFilter(FilterComparisonType.Equal) { LeftExpression = new EntitySchemaQueryExpression(esqCreateMonthFunction) }; esqMonthFilter.RightExpressions.Add(esqParameter); esqResult.Filters.Add(esqMonthFilter); // Создание фильтра для выборки контактов по году даты создания. var esqYearFilter = esqResult.CreateFilter(FilterComparisonType.Equal, "CreatedOn", EntitySchemaQueryMacrosType.CurrentYear); esqResult.Filters.Add(esqYearFilter); // Получение экземпляра запроса на выборку. Select selectQuery = esqResult.GetSelectQuery(UserConnection); // В текст запроса все параметры будут добавлены как значения. selectQuery.BuildParametersAsValue = true; // Получение текста результирующего запроса. string esqSqlText = selectQuery.GetSqlText(); // Текст результирующего sql-запроса: // MS SQL: // SELECT // [Contact].[Name] [Name], // [Contact].[CreatedOn] [CreatedOn] // FROM // [dbo].[Contact] [Contact] // WHERE // DATEPART(MONTH, [Contact].[CreatedOn]) = 2 // AND ([Contact].[CreatedOn] >= CONVERT(DATETIME, '2013-01-01 00:00:00.000', 121) // AND [Contact].[CreatedOn] < CONVERT(DATETIME, '2014-01-01 00:00:00.000', 121)) |