在Lightswitch中,如何根据来自单独表的记录中的数据在实体/表中创建计算字段/属性?

时间:2017-06-14 22:13:25

标签: c# visual-studio-lightswitch

我目前在c#中有一个公式,用于Lightswitch实体/表(H​​ouseIncome)中的计算属性。

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,每年都有新的记录。我不确定每个属性/字段需要哪些数据类型。

1 个答案:

答案 0 :(得分:1)

一种选择是使用以下类型的实体数据类型:

example entity fields

除了以下类型的计算属性方法:

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。