Ah. I was thinking that Weight itself was nullable. Try this:
var q = context.EMTransactions.Where(r => r.TransactionHeaders_Id == transactionHeaders_Id).Sum(r => (decimal?) r.Weight);
var q = context.EMTransactions.Where(r => r.TransactionHeaders_Id == transactionHeaders_Id).Sum(r => (decimal?) r.Weight) ?? 0;
>Hi Viv.
>
>>If you want null results to be treated as 0 then you could just use : Sum(r=>r.Weight ?? 0)
>
>Doesn't compile either.
>
>This on the other hand does work. Interestingly q does not return null if there no transactions in EM. So why won't it sum()?
>
>
> public static decimal ComputeWeightDifference(int transactionHeaders_Id,PICSEntities context)
> {
> decimal emWeight = 0;
> var q = context.EMTransactions.Where(r => (r.TransactionHeaders_Id == transactionHeaders_Id));
> if ((q.Count() == 0) == false) { emWeight = q.Sum(r => r.Weight); }
> decimal detailsWeight = context.TransactionDetails.Where(r => (r.TransactionHeaders_Id == transactionHeaders_Id)).Sum(r => r.Weight);
> return emWeight - detailsWeight;
> }
>