Dynamics crm 2011 更新插件中多个字段的最佳实践是什么
我有一个在Post操作中注册的插件,需要使用XML文件中的数据更新CRM中的多个字段。目前我正在使用以下代码: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
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。我是这样做的,但我改变了它,以更新每个属性,因为我得到了一个错误。最后,错误是由于更新了一个实体引用,而我将其更新为实体属性。