我正在视图上使用 OrderBy 调用 EWS FindItems() 方法。如果我使用各种 ItemSchema.* 值(例如 ItemSchema.DisplayTo、ItemSchema.Importance、ItemSchema.Subject),结果将以正确的顺序返回。
但是,如果我希望结果按 EmailMessageSchema.From 排序,因为结果的顺序很奇怪,我无法理解并且我的用户也无法接受。
正确排序:ItemSchema.Subject
ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.OrderBy.Add(ItemSchema.Subject, SortDirection.Ascending);
var findResults = service.FindItems(new FolderId(emails.CompositeUniqueFolderId), view);
排序不正确:EmailMessageSchema.From
ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.OrderBy.Add(EmailMessageSchema.From, SortDirection.Ascending);
var findResults = service.FindItems(new FolderId(emails.CompositeUniqueFolderId), view);
奇怪的“来自”订单:
- MXX 质量保证团队
- 沙赫扎德·伊克巴尔
- 金·史蒂文斯
- 维克拉姆·凯斯瓦尼
- 乌尔里希·帕泽
- 沙赫扎德·伊克巴尔
- 沙赫扎德·伊克巴尔
如果我按降序排序,则条目按相反顺序排列。电子邮件 #6 和 #7 具有与 #2 不同的 SMPT 地址。查看 SMTP 地址时,模式并不清晰。结果似乎确实按 Address.MailboxType 分组。这是我能看到的唯一轻微的模式。
如何让 FindItems() 结果按 EmailMessageSchema.From 正确排序?