EWS FindItems OrderBy - 按EmailMessageSchema.From排序错误

时间:2015-03-25 20:41:11

标签: sorting exchangewebservices

我在View上使用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);

奇怪'来自'顺序:

  1. MXX质量保证小组
  2. Shahzad Iqbal
  3. Kim Stevens
  4. Vikram Keswani
  5. Ulrich Patzer
  6. Shahzad Iqbal
  7. Shahzad Iqbal
  8. 如果按顺序降序,则按顺序降序。电子邮件#6和#7具有与#2不同的SMPT地址。查看SMTP地址时,模式不明确。结果似乎按Address.MailboxType分组。这是我能看到的唯一一种模式。

    如何通过EmailMessageSchema.From正确排序FindItems()结果?

1 个答案:

答案 0 :(得分:5)

From和Sender属性是复杂属性(例如,包含多个属性)。您最好只使用Extended属性来定制结果,例如,如果您想根据发件人名称订购结果,请使用pidtagSenderName属性,例如

        ExtendedPropertyDefinition Pr_Sender_Name = new ExtendedPropertyDefinition(0x0C1A, MapiPropertyType.String);
        ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
        view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
        view.PropertySet.Add(Pr_Sender_Name);
        view.OrderBy.Add(Pr_Sender_Name, SortDirection.Ascending);

干杯 格伦