假设我有以下代码:
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?
答案 0 :(得分:0)
我可以建议的一种方法是在GetPropertyValue方法周围编写一个帮助器/包装器来检查返回类型,并确保返回类型是否可为空(如contact.GetPropertyValue(“exchangerate”))然后如果属性值也为null然后返回null。 HTH。 :)