是否可以仅使用选项的名称/标签通过Dynamics CRM设置新的OptionSetValue?
例如,我具有以下OptionSet:
1 : Male
2 : Female
如果我没有int
值,是否可以改用string
标签?例如...
my_optionSet = new OptionSetValue(Male)
答案 0 :(得分:4)
我们使用$dist['12'] = distance($object1,$object2) ;
$dist['13'] = distance($object1,$object3) ;
$dist['23'] = distance($object2,$object3) ;
// sort values into ascending order
asort($dist);
// take 1st element index
reset($dist);
$closest = key($dist);
echo $closest;
来实现。
enum
这些将是预定义的key:value对,它们在环境之间永远不会改变。当您考虑避免在该属性中添加新选项时,避免进行代码部署并简化为仅针对方案解决方案的部署时,可以投资Retrieve OptionSet Metadata。
答案 1 :(得分:3)
在您的情况下,我将使用Dictionary<string, int>
作为映射表,然后可以传递字符串值,然后在int
类中设置OptionSetValue
参数。
Dictionary<string, int> mapperT = new Dictionary<string, int>();
mapperT.Add("Male", 1);
mapperT.Add("Female", 2);
my_optionSet = new OptionSetValue(mapperT["Male"]);
答案 2 :(得分:2)