我正在CRM 2011中创建一个插件。该插件使用fetchXML从Entity的子网格获取数据,使用数据进行一些计算,并在插件的末尾我想在子网格中设置新的计算数据,但我不能......
我尝试了几种方法:
(1)
private static OptionSetValue CreateOptionSet(int optionSetValue)
{
OptionSetValue optionSetInstance = new OptionSetValue();
optionSetInstance.Value = optionSetValue;
return optionSetInstance;
}
(2)
public void setVal(Entity entity, string attr, object val)
{
if (entity.Attributes.Contains(attr))
{
entity[attr] = val;
}
else
{
entity.Attributes.Add(attr, val);
}
}
只是
paid["zbg_paidamount"] = 400;
payment.Attributes["zbg_suggestedamount"] = paidVal;
但没有任何作用......
我想的可能是我想要设置但不确定的数据类型。
如果你能帮助我,我很绝望。
由于
答案 0 :(得分:2)
即使看起来您已经解决了问题,但代码的每个部分都存在问题...
(1) - 使用OptionSetValue
:
(2) - 不要担心检查现有值是否存在,只需将其直接设置在实体上(也不用担心访问Attributes集合)
payment["zbg_paidamount"] = new OptionSetValue(400);
Entity类的索引器将自动处理添加或更新值。以下是LinqPad程序的一个示例: