Реализовала такой запрос:
var esqKit = new EntitySchemaQuery(userConnection.EntitySchemaManager, "Kit");
EntitySchemaQuery kitsCountSubQuery;
esqKit.AddColumn("Id", AggregationTypeStrict.Count, out kitsCountSubQuery);
esqKit.Filters.Add(esqKit.CreateFilterWithParameters(FilterComparisonType.Equal, "BTContactPatient",
patientId));
EntityCollection kitsCollection = esqKit.GetEntityCollection(userConnection);
По факту выполнения на стороне sql-сервера формируется корректный sql-запрос и возвращает правильный результат, но я не понимаю, каким образом мне получить результат этого запроса.
Как называется эта колонка и как правильно обратиться к kitsCountSubQuery, чтобы получить результат запроса?
Нравится
Алла, нужно запомнить объект-результат AddColumn в переменную, а потом посмотреть её Name. Как тут:
var gridPageEntitySchemaQuery = (EntitySchemaQuery)GridPageEntitySchemaQuery; var monthColumn = gridPageEntitySchemaQuery.AddColumn(gridPageEntitySchemaQuery.CreateMonthFunction(columnName)); var yearColumn = gridPageEntitySchemaQuery.AddColumn(gridPageEntitySchemaQuery.CreateYearFunction(columnName)); var aggregationValueColumn = gridPageEntitySchemaQuery.AddColumn( gridPageEntitySchemaQuery.CreateAggregationFunction(AggregationTypeStrict.Count, gridPageEntitySchemaQuery.RootSchema.PrimaryColumn.Name)); EntitySchemaQueryFilterCollection filters = gridPageEntitySchemaQuery.Filters; filters.Add(gridPageEntitySchemaQuery.CreateFilterWithParameters(FilterComparisonType.IsNotNull,columnName)); var entityCollection = gridPageEntitySchemaQuery.GetEntityCollection(Page.UserConnection); string dateName = string.Empty; int month = 0; foreach (var item in entityCollection) { var aggregationValue = item.GetTypedColumnValue<double>(aggregationValueColumn.Name); month = item.GetTypedColumnValue<int>(monthColumn.Name); dateName = item.GetTypedColumnValue<string>(yearColumn.Name)+ "-" +(month < 10 ? "0" + month.ToString() : month.ToString()); series.Add(dateName, aggregationValue); }
Зверев Александр,
Спасибо за подсказку - все получилось.
Если интересно, то данная колонка называется просто 'Column'.