sdk - Dynamics CRM OrderBy 表达式不起作用
问题描述
我正在尝试从 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
我在这里做错了什么?
解决方案
这是按照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。
等等。
推荐阅读
- docker - Docker-volume:我正在尝试使用已经制作的卷来制作容器
- javascript - 使用 puppeteer 进行 JS 网页抓取,出现此错误: (node:12121) UnhandledPromiseRejectionWarning: TypeError: src.jsonValue is not a function
- hyperledger-fabric - hyperledger blockchain-explorer 无法连接客户端对等点
- python - 带有压缩 JSON python 的 HTTP POST 返回 200 代码,但没有数据发布到网站
- javascript - 如何使用 jQuery 向 html 元素添加负填充顶部
- spring-boot - Spring 验证不适用于泛型类型
- sql - 基于发票行项目检查的 SSIS SQL 拆分文件
- windows - FB 离线时清除 C:\ProgramData\firebird 文件夹是否安全?
- python - 来自 DictReader 的 For 循环未迭代所有字段名
- android - 颤振热重载问题