次のlinqでArgumentNullException"値をnullにすることはできません。パラメーター名:inner"が発生し続けます。
var dataSource = (from v in vouchers
join payAdj in paymentAdjustments on v.VoId equals payAdj.VoId into pTemp
from p in pTemp.DefaultIfEmpty()
select new
{
VoId = v.VoId,
OpId = v.OpId,
PaValue = p.PaValue
});
バウチャーとpaymentAdjustmentsはどちらもエンティティのリストです。
私はこれに関する多くの投稿を読みました、そして私が試みるすべては私に同じ(または同様の)エラーを与え続けます。
PaValueをnull許容の10進数にキャストします。つまり、PaValue =(decimal?)p.PaValue
PaValueにアクセスする前にpのnullをテストします。つまり、PaValue = p!= null?p.PaValue :( 10進数)0
DefaultIfEmptyの代わりにSingleOrDefault(1つだけである必要があります)を使用する
結合の代わりにネストされた選択を実行する...つまりPaValue=(paymentAdjustmentsのpからp.VoId == v.VoId select p.PaValue).DefaultIfEmpty()
私はc#2010Expressと.Net4を使用しています。
他の提案をいただければ幸いです。
ありがとうマーリン