检查数据是否被检索 - CRM

时间:2016-08-31 10:06:58

标签: c# dynamics-crm crm

我正在从CRM中检索数据。我想从quotedetail检索几个字段。其中一个是int字段ad_discountpercent

此字段不必具有值。

我需要检查是否从该字段中检索到某个值,如果没有值,则为其提供默认值0

这是我的代码:

        string fetch1 = @"
                  <fetch count='50' >
                      <entity name='quotedetail' >
                        <attribute name='manualdiscountamount' />
                        <attribute name='priceperunit' />
                        <attribute name='ad_discountpercent' />
                        <attribute name='quantity' />
                        <attribute name='extendedamount' />
                      </entity>
                    </fetch>";

        EntityCollection result = service.RetrieveMultiple(new FetchExpression(fetch1));

        foreach (var c in result.Entities)
        {
             if(...)
        }

我应该用什么代替(...)来查看是否有任何数据被检索并提供默认值?如果你知道这两件事,那会很有帮助。

如果您需要其他信息,请告诉我。

2 个答案:

答案 0 :(得分:2)

要访问字段值,您可以使用GetAttributeValue<T>(string attribute logical name)

在你的情况下:

c.GetAttributeValue<Entity>("ad_discountpercent");

答案 1 :(得分:1)

目前尚不清楚是否要更新Entity对象(即将其保存回CRM)或仅需要处理值。

if (!c.Attributes.Contains("ad_discountpercent"))
{
    var newEntity = new Entity(c.LogicalName, c.Id)
    newEntity["ad_discountpercent"] = 0; //replace 0 with your default value.   
}