2017-06-14 6 views
0

私は現在、Lightswitchエンティティ/テーブル(HouseIncome)の計算されたプロパティのためにC#で数式を持っています。Lightswitchでは、別のテーブルのレコードのデータに基づいてエンティティ/テーブルの計算フィールド/プロパティを作成するにはどうすればよいですか?

result = NumberInHouseHold >= 1 
? (AnnualHouseHoldIncome/(7880 + (NumberInHouseHold * 4180))) 
: 0; 

NumberInhouseholdのデータ型はDecimalです。 AnnualHouseHoldIncomeはMoneyのデータ型です。 2つの数字は毎年変わる変数です。 PFPLevelは、Percentデータ型の計算されたプロパティです。この表の各レコードには、Dateデータ型のEmploymentDateプロパティもあります。

この計算では、2017年のためではなく、2018年には素晴らしい作品、そしてその後の数年間は、私が2017年

私のために、もはや正確でないだろうPFPLevelフィールドに表示される新しいガイドラインや情報と計算フィールドを再コーディングする必要がありますHouseIncomeテーブルのレコードに入力されたデータとEmploymentの日付に従ってFPLGuidlinesテーブルから引き出された変数に基づいてPFPLevel計算を行いたいとします。したがって、2017年の人が2011年6月17日の雇用日のレコードを持っていれば、そのレコードはNumberInHousehold、AnnualHouseHoldIncome、および2017年のレコードから引き出されたガイドラインで計算されたPFPlevelを持ちます。

FPLGuidelinesテーブルには4つのフィールドがあります。 Id、YearID、BaseIncome、PerIndividulalAmountは毎年新しいレコードを持ちます。これらのプロパティ/フィールドのそれぞれに必要なデータ型がわかりません。上記の例のベースとなって

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; 
     } 
    } 
} 

:あなたの計算プロパティに

example entity fields

アプローチの次の型と並ん:

答えて

1

1つのオプションは、エンティティデータ型の次のタイプを使用することですあなたのHouseIncome.EmploymentDateプロパティはnull可能なDateTimeです。

+0

Crhis。あなたのソリューションは、近くに見えますが、私はエラーを取得しています:**重大\tコード\t説明\tライン\t抑制状態 エラー\t CS1061 \t「applicationDataには、」「FPLGuidlines」と受け入れていない拡張メソッド「FPLGuidlines」の定義が含まれていません。 'ApplicationData'型の最初の引数が見つかる可能性があります(使用するディレクティブまたはアセンブリ参照がありませんか?)アクティブ** – Mark

+0

Chris、 ここで遭遇する唯一の問題は次のvar行です。 var hiy = EmploymentDate.Date.Year; ここで、日付には赤で下線が引かれ、次のメッセージが表示されます。 ** 'DateTime?' 'Date'の定義は含まれておらず、 'Date'は 'DateTime'タイプの最初の引数を受け入れません。 ** – Mark

+0

データソースの名前がApplicationData以外の場合は、DataWorkspace.ApplicationDataを変更してデータソースの値を反映させる必要があります。たとえば、次のようになります(例:usingディレクティブまたはアセンブリ参照)。 DataWorkspace.YourDataSourceName。 Dateエラーに関して、私はHouseIncome.EmploymentDateプロパティがnullableではないという私の例に基づいています。私はnullable DateTimeのアプローチを示すために私の例を更新します。 –

関連する問題