我正在从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(...)
}
我应该用什么代替(...)
来查看是否有任何数据被检索并提供默认值?如果你知道这两件事,那会很有帮助。
如果您需要其他信息,请告诉我。
答案 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.
}