0

假设我有以下代码:

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 中为空,是否应该带回一个空值?我在其他场景中尝试过,它总是发回值类型的默认值。我怎样才能得到空值,以便我可以确保我的 dto 对象属性为空?

4

1 回答 1

0

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

于 2011-08-10T07:43:47.207 回答