CRM 2011 - 如何使用C#代码在Entity中使用子网格设置记录中的数据

时间:2013-11-08 13:25:37

标签: c# xml dynamics-crm-2011 crm fetchxml

我正在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;

但没有任何作用......

我想的可能是我想要设置但不确定的数据类型。

如果你能帮助我,我很绝望。

由于

1 个答案:

答案 0 :(得分:2)

即使看起来您已经解决了问题,但代码的每个部分都存在问题...

(1) - 使用OptionSetValue

的int构造函数

(2) - 不要担心检查现有值是否存在,只需将其直接设置在实体上(也不用担心访问Attributes集合)

payment["zbg_paidamount"] = new OptionSetValue(400);

回应Draiden的评论

Entity类的索引器将自动处理添加或更新值。以下是LinqPad程序的一个示例:

Linqpad Example