【问题标题】:Dynamics CRM OrderBy expression not workingDynamics CRM OrderBy 表达式不起作用
【发布时间】:2019-05-24 16:27:37
【问题描述】:

我正在尝试从 Dynamics CRM 下载潜在客户 ID,我需要它们按 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

我在这里做错了什么?

【问题讨论】:

  • True - 但是你可以看到我指定我希望它通过带有 OrderExpression 的“leadId”排序
  • 我们想看结果,截图?
  • 添加结果示例
  • 我认为 Arun 回答了您的问题。您可以获取结果,将 guid 转换为字符串,然后按该值排序。

标签: sdk dynamics-crm microsoft-dynamics guid query-expressions


【解决方案1】:

这是按照 GUID sort algorithm 正确排序的。

通过在字节“组”中从右到左和从左到右查看字节“组”来进行比较。字节组是由“-”字符分隔的。从技术上讲,我们首先查看字节 {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.

等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多