Dynamics CRM:null值和GetPropertyValue <t>()</t>

时间:2011-08-03 18:36:17

标签: c# dynamics-crm dynamics-crm-4 xrm

假设我有以下代码:

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")

如果在Dynamics中它为null,是否应该返回null?我在其他场景中尝试了这个,它总是发回值类型的默认值。如何才能返回null,以便确保我的dto对象属性为null?

1 个答案:

答案 0 :(得分:0)

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