Есть ли способ, как получить общее количество объектов данного типа в CRM без подкачки - PullRequest
0 голосов
/ 11 мая 2018

Предположим, у меня есть запрос типа

var countAlias = "entity_count";
var query = FormattableString.Invariant($@" 
  <fetch distinct='false' aggregate='true'> 
    <entity name='{entityName}'> 
      <attribute name='createdon' alias='{countAlias}' aggregate='count'/> 
    </entity> 
  </fetch>");

var response = organizationService.RetrieveMultiple(new FetchExpression(query));
var entity = response.Entities.First();
var count = (int)((AliasedValue)entity[countAlias]).Value;

Это прекрасно работает, если нет записей более 50 КБ - тогда оно достигает предела агрегации. Есть ли способ, как запросить общее количество объектов в системе без подкачки?

1 Ответ

0 голосов
/ 12 мая 2018

К сожалению, короткий ответ: Нет .

Fetchxml - это единственный вариант для агрегирования, например, подсчет, сумма и т. Д., Который также имеет ограничение записи 50 тыс. Из-за соображений производительности (верхний предел может быть согнут для предварительной установки).

выражение запроса, LINQ to CRM не поддерживает агрегацию . Вот почему мы получили файл cookie для пейджинга в качестве выбора от MS для итерации и подсчета записей.

В качестве альтернативы (маловероятно), если у вас есть отчет о репликации SQL-БД путем нажатия на синхронизацию данных, подсчет сведения может быть выполнен для некоторых заданий своевременно.

...