Dynamics CRM: null value and GetPropertyValue<T>()

本文关键字:lt gt GetPropertyValue CRM null value and Dynamics | 更新日期: 2023-09-27 18:04:29

代码如下:

public class ContactDTO
{
   public string Email {get; set;}
   public decimal? ExchangeRate {get; set;}
}
......
var contacts = crm.GetEntities("contact")
var cList = new List<ContactDTO>();
foreach(contact in contacts)
{
  clist.Add(new ContactDTO
    {
      Email = contact.GetPropertyValue<string>("emailaddress1");
      ExchangeRate = contact.GetPropertyValue<decimal>("exchangerate");
    }
}

在上面的代码中,如果在Dynamics中汇率为空,我将得到一个十进制的默认值,这不是我想要的(我想知道它是否为空)。如果我使用:

contact.GetPropertyValue<decimal?>("exchangerate")

如果它在动力学中为空,应该带回null吗?我在其他场景中尝试过,它总是发送回值类型的默认值。我怎样才能得到null,以确保dto对象属性为null?

Dynamics CRM: null value and GetPropertyValue<T>()

我可以建议的一种方法是围绕GetPropertyValue方法编写一个helper/包装器,该方法检查返回类型,并确保返回类型是否可为空(如contact.GetPropertyValue("exchangerate")),然后如果属性值也为空,则返回null。HTH。:)