如何在Exchange Web Api中更新联系人项目

本文关键字:更新 联系人 项目 Api Web Exchange | 更新日期: 2023-09-27 18:26:10

我试图用一个空字符串更新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和字符串。空的,但效果是一样的。我做错了什么?

如何在Exchange Web Api中更新联系人项目

您确定Contact类型上有Company属性吗?我只看到一个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);

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

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

第三,找到你的联系人,获取物品ID,然后将新联系人绑定到该物品ID。

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

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

查看这个链接,我在那里放了很多关于使用EWS更新联系人的信息:使用EWS 更新联系人