EntitySchemaQuery.GetSummaryColumns(IEnumerable) - метод Смотри также Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс > GetSummaryColumns - метод : GetSummaryColumns(IEnumerable) - метод C#
- columnNames
- Перечислитель имен колонок запроса.
Glossary Item Box
public EntitySchemaQueryColumnCollection GetSummaryColumns( IEnumerable<string> columnNames )
Параметры
- columnNames
- Перечислитель имен колонок запроса.
Тип возвращаемого значения
Коллекция выражений колонок, для которых вычисляются итоговые значения.Исключение | Описание |
---|---|
Terrasoft.Common.InvalidObjectStateException | Если у колонки с именем из перечислителя columnNames не определен тип агрегирующей функции либо если данная колонка не используется для построения результирующего sql-запроса. |
В данном примере продемонстрировано, как построить запрос, возвращающий итоговые значения только для тех колонок, имена которых переданы в коллекции.
// Получение экземпляра менеджера схем объектов. EntitySchemaManager esqManager = UserConnection.EntitySchemaManager; // Создание экземпляра запроса с корневой схемой "Contact". var esqResult = new EntitySchemaQuery(esqManager, "Contact"); // Добавление колонок в запрос. esqResult.AddColumn(esqResult.CreateAggregationFunction(AggregationTypeStrict.Count, "Name")); // Для колонок CreatedOn и ModifiedOn указываются типы функция для подсчета итогов. esqResult.AddColumn("CreatedOn").SummaryType = AggregationType.Count; esqResult.AddColumn("ModifiedOn").SummaryType = AggregationType.Count; // Коллекция имен колонок, для которых необходимо построить запрос для вычисления итоговых значений. var esqSummaryColumnsNames = new Collection<string> { "CreatedOn" }; // Текст sql-запроса для вычисления итоговых значений колонок с указанными именами. var summaryQuerySqlText = esqResult.GetSummarySelectQuery(UserConnection, esqSummaryColumnsNames) .GetSqlText(); // Текст sql-запроса. // NS SQL: // SELECT // COUNT(*) [CreatedOn] // FROM // ( // SELECT // [Contact].[CreatedOn] [CreatedOn] // FROM // [dbo].[Contact] [Contact] // GROUP BY // [Contact].[CreatedOn], [Contact].[ModifiedOn]) [SubSelectSource] // Oracle: // SELECT // COUNT(*) "CreatedOn" // FROM // ( // SELECT // "Contact"."CreatedOn" "CreatedOn" // FROM // "Contact" "Contact" // GROUP BY // "Contact"."CreatedOn", "Contact"."ModifiedOn") "SubSelectSource" |