EntitySchemaQuery.GetSummaryColumns(IEnumerable) - метод Смотри также Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс > GetSummaryColumns - метод : GetSummaryColumns(IEnumerable) - метод C#
- columnNames
- Enumerator of the query column names.
Glossary Item Box
public EntitySchemaQueryColumnCollection GetSummaryColumns( IEnumerable<string> columnNames )
Параметры
- columnNames
- Enumerator of the query column names.
Тип возвращаемого значения
Collection of column expressions for which totals are calculated.Исключение | Описание |
---|---|
Terrasoft.Common.InvalidObjectStateException | If the aggregate function type is not defined for the column with the name from the columnNames enumerator, or if this column is not used for building the resulting SQL query. |
В данном примере продемонстрировано, как построить запрос, возвращающий итоговые значения только для тех колонок, имена которых переданы в коллекции.
// Получение экземпляра менеджера схем объектов. 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" |