나는 다음과 같은 LINQ 쿼리는 데이터 테이블에서 하나 개 이상의 행을 끌어 쓴 :DataTable에 대한 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의 것보다이 것을 선택했다. 그 방법은 내가 사용했고 중간의 "result"객체를 필요로하지 않았기 때문이다. 모든 도움을 주셔서 감사합니다! – SpaceCowboy74