在员工MVP模式的工资处理系统中我们有模型类WageInfo
,EarningInfo
,DeductionInfo
和AdvanceInfo
以及实体类Advance
。 (还有其他几个班级)
EarningInfo
和DeductionInfo
与WageInfo
(包含在WageInfo中)有构成关系,而且预付金额是工资的一部分(提前支付)我已经建模Advance
与DeductionInfo
的关系为汇总因为最终它成为工资的扣除(提前金额应从工资中扣除)。
public class DeductionInfo
{
public int EmployeeID { get; set; }
public string Name { get; set; }
public decimal LoanInstalmentAmount { get; set; }
public decimal UniformInstalmentAmount { get; set; }
public decimal InsuranceInstalmentAmount { get; set; }
public decimal AdvanceAmount { get { return Advance.Amount; } set { Advance.Amount = value; } }
public Advance Advance = new Advance();
}
public class Advance
{
public int AdvanceID { get; set; }
public decimal Amount { get; set; }
public DateTime EnteredDate { get; set; }
}
因此,当我创建一个DeductionInfo
对象时,我只需为AdvanceAmount
属性赋值,而且我没有在此实例中初始化Advance
类的其他属性。
我的问题是,在DeductionInfo类中,由于提前金额只是一个金额,是否值得在高级字段上使用decimal
属性?
答案 0 :(得分:2)
您应该使用Advance
类型而不仅仅是decimal
。可能在保存过程中设置了EnteredDate
属性。这有助于跟踪提前的时间,也可以区分同一数量的多个进展。
顺便说一句,我很惊讶PayedBack
上没有Advance
属性来表示它何时被解析。
在它自己的基础上,使用它并不重要,但是在预付款时会记录很多其他信息。没有其他课程,那么就无法跟踪这些信息。