检查是否检索到数据 - CRM

Check if data is retrieved - 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(...)
        }

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

如果您需要更多信息,请告诉我。

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

你的情况:

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

尚不清楚您是要更新 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.   
}