我编写了一个 LINQ 查询,用于从数据表中提取至少一行,如下所示:
var generalQuery =
from contact in contacts.AsEnumerable().DefaultIfEmpty()
where contact.Field<String>("CONTACT_TYPE").ToUpper() == "AGENT"
select new
{
AgentName = contact.Field<String>("FIRST_NAME") + " " +
contact.Field<String>("LAST_NAME"),
AgentPhoneNumber = contact.Field<String>("PHONE"),
AgentEmailAddress = contact.Field<String>("EMAIL")
};
然后,我尝试使用 LINQ 查询输出中的值设置类的新实例的属性:
var genInfo = new GeneralInformationType
{
AgentName = generalQuery.FirstOrDefault().AgentName,
AgentPhoneNumber = generalQuery.FirstOrDefault().AgentPhoneNumber,
AgentEmailAddress = generalQuery.FirstOrDefault().AgentEmailAddress
};
我遇到的问题是查询中偶尔没有结果。这会尝试将 GeneralInformationType 中各种字符串的值设置为 null 并导致异常。我尝试了 DefaultIfEmpty 的各种方法,但不知道该放在哪里。
任何帮助,将不胜感激。
谢谢,罗伯