我目前在c#中有一个公式,用于Lightswitch实体/表(HouseIncome)中的计算属性。
result = NumberInHouseHold >= 1
? (AnnualHouseHoldIncome / (7880 + (NumberInHouseHold * 4180)))
: 0;
NumberInhousehold的数据类型为Decimal。 AnnualHouseHoldIncome是Money的数据类型。这两个数字是每年更改的变量。 PFPLevel是具有百分比数据类型的计算属性。对于此表中的每个记录,还有一个具有Date数据类型的EmploymentDate属性。
此计算在2017年很有效,但在2018年以及随后的几年中,我将不得不使用新指南重新编码计算字段,PFPLevel字段中显示的信息将不再准确2017年。
我想根据在HouseIncome表的记录中输入的数据和根据就业日期从FPLGuidlines表中提取的变量进行PFPLevel计算。因此,如果2017年的某个人的就业日期为2017年6月17日的记录,则该记录将根据NumberInHousehold,AnnualHouseHoldIncome和2017年记录中的指南计算PFP级别。
在FPLGuidelines表中会有四个字段; Id,YearID,BaseIncome,PerIndividulalAmount,每年都有新的记录。我不确定每个属性/字段需要哪些数据类型。
答案 0 :(得分:1)
一种选择是使用以下类型的实体数据类型:
除了以下类型的计算属性方法:
partial void PFPLevel_Compute(ref decimal result)
{
if (EmploymentDate.HasValue)
{
var hiy = EmploymentDate.Value.Date.Year;
var gl = DataWorkspace.ApplicationData.FPLGuidelines.Where(e => e.Year == hiy).Execute().FirstOrDefault();
if (gl != null)
{
result = NumberInHouseHold >= 1
? (AnnualHouseHoldIncome / (gl.BaseIncome + (NumberInHouseHold * gl.PerIndividualAmount)))
: 0;
}
}
}
以上示例基于您的HouseIncome.EmploymentDate属性是可以为空的DateTime。