为自定义实体设置选项集值

Set optionset value for custom entity

我想为属性类型为 PicklistAttributeMetadata 的 CRM 设置选项集值:

//Executing Status
                    CreateAttributeRequest executingStatusAttributeRequest =
                        new CreateAttributeRequest
                        {
                            EntityName = customEntityName,
                            Attribute = new PicklistAttributeMetadata
                            {
                                SchemaName = prefix + "executingstatus",
                                DisplayName = new Label("Executing Status", 1033),
                                OptionSet = new OptionSetMetadata
                                 {
                                     IsGlobal = false,
                                     OptionSetType = OptionSetType.Picklist,
                                     Options =  { 
                                        new OptionMetadata(new Label("Draft",1033),null),
                                        new OptionMetadata(new Label("Executing",1033),null),
                                        new OptionMetadata(new Label("Complete (No Errors)",1033),null),
                                        new OptionMetadata(new Label("Complete (Errors)",1033),null)
                                    }
                                 }
                            }
                        };
                    CreateAttributeResponse executingStatusAttributeResponse =
                        (CreateAttributeResponse)_serviceProxy.Execute(
                        executingStatusAttributeRequest);

如何设置 'dh_executingstatus' 的值为 'Draft':

Entity dhEntity = new Entity(customEntityName); 

dhEntity["dh_executingstatus"]=???

您需要为您创建的每个选项赋予它自己的唯一整数值​​:

Options =  { 
    new OptionMetadata(new Label("Draft",1033),1),
    new OptionMetadata(new Label("Executing",1033),2),
    new OptionMetadata(new Label("Complete (No Errors)",1033),3),
    new OptionMetadata(new Label("Complete (Errors)",1033),4)
}

然后您需要发布实体。然后,在处理记录时,您可以像这样更新选项集值:

ent["dh_executingstatus"] = new OptionSetValue(2);