Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 2011 更新插件中多个字段的最佳实践是什么_Dynamics Crm 2011_Dynamics Crm - Fatal编程技术网

Dynamics crm 2011 更新插件中多个字段的最佳实践是什么

Dynamics crm 2011 更新插件中多个字段的最佳实践是什么,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我有一个在Post操作中注册的插件,需要使用XML文件中的数据更新CRM中的多个字段。目前我正在使用以下代码: if (node["node1"] != null) { var sId = sElement.GetElementsByTagName("pId")[0].InnerText; Guid sGU

我有一个在Post操作中注册的插件,需要使用XML文件中的数据更新CRM中的多个字段。目前我正在使用以下代码:

                    if (node["node1"] != null)
                    {
                            var sId = sElement.GetElementsByTagName("pId")[0].InnerText;
                            Guid sGUID = new Guid(sId);
                            sEntity["Attrib1"] = sGUID;
                            service.Update(sEntity);
                    }

                    if (node["node2"] != null)
                    {
                            var sMax = sElement.GetElementsByTagName("pMax")[0].InnerText;
                            sEntity["Attrib2"] = sMax;
                            service.Update(sEntity);
                    }

                    if (node["node3"] != null)
                    {
                            var sMin = sElement.GetElementsByTagName("pMin")[0].InnerText;
                            sEntity["Attrib3"] = sMin;
                            service.Update(sEntity);
                    }
因此,我正在调用服务。每次我需要更新时更新,在上述情况下更新3次


是否有更好的方法来完成我试图做的事情,并调用服务。只更新一次?

您最后只需执行一次更新(最终您可以添加一个检查,以防字段没有更改,以避免无用的更新):

if(节点[“node1”]!=null)
{
var sId=sElement.GetElementsByTagName(“pId”)[0].InnerText;
Guid sGUID=新的Guid(sId);
sEntity[“Attrib1”]=sGUID;
}
if(节点[“node2”]!=null)
{
var sMax=sElement.GetElementsByTagName(“pMax”)[0].InnerText;
感觉[“Attrib2”]=sMax;
}
如果(节点[“节点3”]!=null)
{
var sMin=sElement.GetElementsByTagName(“pMin”)[0].InnerText;
知觉[“属性3”]=sMin;
}
服务更新(sEntity);

非常感谢Guido。我是这样做的,但我改变了它,以更新每个属性,因为我得到了一个错误。最后,错误是由于更新了一个实体引用,而我将其更新为实体属性。