“entity.Attributes.Contains"方法永远不会返回true
本文关键字:永远 返回 true 方法 Attributes entity Contains quot | 更新日期: 2023-09-27 18:05:47
尝试在事件实体更新事件上创建CRM插件。
这是插件
的完整代码namespace MyPluginPackage.Plugins{
using System;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
public class PreValidateCaseUpdate: Plugin
{
public PreValidateCaseUpdate()
: base(typeof(PreValidateCaseUpdate))
{
base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(10, "Update", "incident", new Action<LocalPluginContext>(ExecutePreValidateCaseUpdate)));
}
protected void ExecutePreValidateCaseUpdate(LocalPluginContext localContext)
{
if (localContext == null)
{
throw new ArgumentNullException("localContext");
}
IPluginExecutionContext context = localContext.PluginExecutionContext;
IOrganizationService service = localContext.OrganizationService;
if (context.InputParameters.Contains("Target") &&
context.InputParameters["Target"] is Entity && context.Depth < 2)
{
Entity entity = (Entity)context.InputParameters["Target"];
try
{
if (entity.Attributes.Contains("customerid"))
{
//Some code. For example updates incident entity description
entity["description"] = "Some description";
}
service.Update(entity);
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("An error occurred in the plug-in.", ex);
}
}
}
}}
问题是if (entity.Attributes.Contains("customerid"))永远不会返回TRUE。"customerid"是事件实体的标准属性。如有任何意见和建议,我们都非常感谢。
描述了我使用的部署插件的方法在这篇博文中:
更新什么字段调用插件执行?如果customerid没有更新-它不会出现在目标中,所以您应该使用Images。我相信我已经在其他论坛上写过了…