在我的订单插入触发器中,我需要更新订单信息的联系人。我知道我的联系人列表中有重复的记录。所以我使用了“Contact[] contactToUpdate = new List(new Set(contactList))”来删除重复项。
但是仍然收到错误消息:“列表中有重复项”。
有什么想法吗?
谢谢。
但是仍然收到错误消息:“列表中有重复项”。
有什么想法吗?
谢谢。
您说的是对的,集合包含唯一元素,但问题在于您正在处理联系人的实例:即使两个实例引用数据库中的同一联系人,它们仍然是内存中不同的对象实例,因此是唯一的,结果是您可以具有表示具有相同id的相同联系人的两个集合条目。
最简单的方法是使用id到联系人的映射:
map<Id, Contact> contactMap = new map<id, Contact>();
对于每个您处理的订单,您可以使用联系人查找作为键来访问地图以达到您想要更新的联系人。在处理结束时,您只需调用以下内容即可更新联系人:
update mapContacts.values();