无法在插件上检索“两个选项”值 - CRM 2011

时间:2013-03-29 23:43:42

标签: dynamics-crm-2011 crm

我无法使用以下代码

在插件上检索“两个选项”字段的选定值
bool? update = entity.GetAttributeValue<bool?>("new_updatecontacts");

bool  update = entity.GetAttributeValue<bool>("new_updatecontacts");

if (update)
{
    ..................
}

有没有其他方法可以检索相同的内容?我已经发布了同样的问题,但没有得到明确的答案,所以我再问一次。

1 个答案:

答案 0 :(得分:2)

默认情况下,插件仅包含已添加/更新的字段的值。对于其他活动,您可以获得其他房产,但现在就让我们继续使用。

因此,如果您想确定自己有价值,则需要运行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

值得检查它是否存在,因为它可以节省服务器命中率。