如何将十进制变量转换为可空类型



我有以下属性:

public decimal PaidAmount { get; set; }

和以下与属性相关的函数:

var PreviousPaidAmount = _db.SEPayments.Where(v => v.Invoice == items).Select(c => c.PaidAmount).FirstOrDefault();
SEPayment del = _db.SEPayments.Where(a => a.Invoice == items).FirstOrDefault();
if (PreviousPaidAmount == null)
{
break;
}
else
{
PreviousPaidAmount = _db.SEPayments.Where(v => v.Invoice == items).Select(c => c.PaidAmount).FirstOrDefault();
var Paid = del.PaidAmount;
Paid -= PreviousPaidAmount;
_db.Entry(del).State = EntityState.Modified;
_db.SaveChanges();
}

我想将变量PreviousPaidAmount转换为可空类型的小数,而不对属性进行任何更改。我是初学者,任何帮助都会很感激

一种方法是将Select调用更改为:

.Select(c => (decimal?)c.PaidAmount)

这将使Select调用产生一个IEnumerable<decimal?>,这意味着FirstOrDefault将产生null作为默认值,如您所愿。

请将var PreviousPaidAmount写成decimal? PreviousPaidAmount

快乐编码:)

最新更新