默认情况下,插件仅包含已添加/更新的字段的值。对于其他事件,您会获得其他属性,但现在让我们先处理它。
因此,如果您想确定自己的价值,您需要跑到 CRM 获取副本。
var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.InitiatingUserId);
var target = context.InputParameters["Target"] as Entity;
if (!target.Contains("new_updatecontacts"))
{
target = service.Retrieve(target.LogicalName, target.Id, new ColumnSet(new [] { "new_updatecontacts", "other_required_fields_here" });
}
//now you know it is present
值得先检查它是否存在,因为它可以保存服务器命中。