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