“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"是事件实体的标准属性。如有任何意见和建议,我们都非常感谢。

描述了我使用的部署插件的方法在这篇博文中:

“entity.Attributes.Contains"方法永远不会返回true

更新什么字段调用插件执行?如果customerid没有更新-它不会出现在目标中,所以您应该使用Images。我相信我已经在其他论坛上写过了…