Dynamics CRM OrderBy выражение не работает

Я пытаюсь загрузить идентификаторы потенциальных клиентов из Dynamics CRM, и мне нужно, чтобы они были упорядочены по идентификатору LeadId:

    IOrganizationService orgService = dynamicService.OrgService;
    QueryExpression request = new QueryExpression()
    {
        EntityName = "lead",
        ColumnSet = new ColumnSet("leadid"),
        Criteria = new FilterExpression(),
        PageInfo = new PagingInfo() { ReturnTotalRecordCount = true, Count = 50, PageNumber = 1 }
    };
    request.Orders.Add(new OrderExpression("leadid", OrderType.Ascending));

    EntityCollection response = orgService.RetrieveMultiple(request);
    foreach(Entity e in response.Entities)
    {
        Console.WriteLine($"{e.Attributes["leadid"]}");
    }

Однако это возвращает их в случайном порядке.

b9b0f003-356d-e911-a966-000d3a1d7430
4298cdf4-4370-e911-a966-000d3a1d7430
97582b3c-2f6d-e911-a971-000d3a1d7b43
92d57a83-338f-e611-80e0-c4346bb588e8
a0d57a83-338f-e611-80e0-c4346bb588e8
a2d57a83-338f-e611-80e0-c4346bb588e8
a6d57a83-338f-e611-80e0-c4346bb588e8

Что я здесь делаю не так?


person AcidPAT    schedule 24.05.2019    source источник
comment
stackoverflow.com / questions / 46595370 /   -  person Aron    schedule 24.05.2019
comment
True - но вы можете видеть, что я указываю, что я хочу, чтобы он был упорядочен с помощьюleadId с выражением OrderExpression   -  person AcidPAT    schedule 24.05.2019
comment
Хотим увидеть результат, скриншот?   -  person Arun Vinoth    schedule 25.05.2019
comment
Добавлен пример результатов   -  person AcidPAT    schedule 25.05.2019
comment
Думаю, Арун ответил на ваш вопрос. Вы можете взять результаты, преобразовать guid в строку и отсортировать по этому значению.   -  person Zach Mast    schedule 25.05.2019


Ответы (1)


Это правильно отсортировано согласно алгоритму сортировки GUID.

Сравнение производится путем просмотра байтовых «групп» справа налево и слева направо внутри байтовой «группы». Группа байтов - это то, что ограничивается знаком «-». С технической точки зрения, мы сначала смотрим байты с {10 по 15}, затем с {8-9}, затем с {6-7}, затем с {4-5} и, наконец, с {0 по 3}.

Таким образом, b9b0f003- 356d -e911-a966-000d3a1d7430 меньше, чем 4298cdf4- 4370 -e911-a966-000d3a1d7430.

Аналогично 4298cdf4-4370-e911-a966- 000d3a1d7430 меньше, чем 97582b3c-2f6d-e911-a971- 000d3a1d7b43.

И так далее.

person Arun Vinoth    schedule 25.05.2019