次のように、データテーブルから少なくとも1つの行をプルするように記述された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のさまざまなメソッドを試しましたが、どこに配置すればよいかわかりません。
どんな助けでもいただければ幸いです。
ありがとう、ロブ