我有一个LINQ查询写入到从数据表中拉至少一行如下:DefaultIfEmpty?
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的各种方法,但无法弄清楚它放在哪里。
任何帮助,将不胜感激。
感谢, 罗布
这两个答案似乎都是正确的。我选择了Jon的这个,因为它是我使用的方法,并且不需要临时的“结果”对象。感谢你的帮助! – SpaceCowboy74