1

我尝试使用空字符串更新 EWS 中的联系人属性,但失败。我不知道为什么。

 // works fine
 contact.Company = "SomeCompany";
 contact.Update(ConflictResolutionMode.AlwaysOverwrite);

 // failed in Update with a service response exception
 contact.Company = "";
 contact.Update(ConflictResolutionMode.AlwaysOverwrite);

我尝试 null 和 string.Empty 但效果相同。我究竟做错了什么?

4

2 回答 2

4

您确定该类型有Company属性吗?Contact我只看到一个CompanyName可以通过以下方式更新而没有任何问题的属性(至少在我尝试时):

var service = GetService();
var view = new ItemView(1);
var searchFilter = new SearchFilter.IsEqualTo(ContactSchema.EmailAddress1, "test@domain.dk");
var contacts = service.FindItems(WellKnownFolderName.Contacts, searchFilter, view);

var contact = contacts.ElementAt(0) as Contact;

// Works fine.
contact.CompanyName = "SomeCompany";
contact.Update(ConflictResolutionMode.AlwaysOverwrite);

// Works fine as well.
contact.CompanyName = "";
contact.Update(ConflictResolutionMode.AlwaysOverwrite);
于 2012-02-28T12:13:19.207 回答
0

首先,您可以一次更新多个属性。

其次,您可以尝试检查现有值是否与新值相同(如果是,则不要设置)。此外,如果它是空字符串,最好将值设置为 null。

第三,找到您的联系人,获取项目 ID,然后将新联系人绑定到该项目 ID。

ItemId itemId = contact.Id;
Contact updateContact = Contact.Bind(service, itemId);

这可能会有所帮助。谁知道。更新项目时,API 很难使用。

检查此链接,我在其中提供了很多有关使用 EWS 更新联系人的信息:使用 EWS 更新联系人

于 2012-11-22T11:53:24.333 回答