Dynamics CRM:“the given key was not present in the dictionary”

在插件中无意中撞到这个问题,其实很简单,就是调用外部的web service,然后根据回传结果更新记录中的field

网上的建议都是要检查这个key是否存在,开始时很不理解,这个field肯定存在的啊,怎么还需要检查呢

之后加trace,尝试着用attribute.contains检查了一下,原来真的不存在

记下来以后要注意一点,对于实体记录,如果field 值是空的话,不返回这个field

这样只能添加,而不是直接赋值

标准代码如下

if (e.Attributes.Contains("new_expressstatus"))
{
    e["new_expressstatus"] = result;
}
else
{
    e.Attributes.Add("new_expressstatus", result);
}

原文地址:https://www.cnblogs.com/yeung/p/5758024.html