1

Lightswitch で多値パラメータのデフォルト値を設定しようとしていますが、うまくいきません。

たとえば、ハードウェア インベントリがあります。「ハードウェア」テーブルには、('active', bool) および ('company_id',int) のフィールドがあります。Company_id は、選択する会社のリストを含む Company テーブルへの外部キーです。

これら 2 つのフィールドに基づいて Lightswitch 画面をフィルター処理したいのですが、画面が最初に読み込まれるときに、アクティブなハードウェアのプライマリ企業にデフォルト設定する必要があります。

「アクティブ」パラメータのローカル プロパティを作成し、画面に追加しました。会社パラメーターのドロップダウン リストを設定するには、次のものが必要です。

  • データ項目の追加 (クエリとして、Companys という名前のデータソースからテーブルを選択)
  • データ項目を追加 (SelectedCompany という名前の会社タイプのローカル プロパティとして)
  • SelectedCompanies.company_id プロパティへのクエリ パラメータのバインド
  • SelectedCompanies を画面に追加する

次に、コードでデフォルト値を次のように指定しました。

partial void Screen1_Created()
    {
        // Write your code here.
        SelectedCompanies.company_id = 2;
        selected_active_property = true;
    }

これは、ブール値である「アクティブ」パラメーターに対しては問題なく機能しますが、SelectedCompanies 行では次のインテリセンス エラーが発生します。

プロパティまたはインデクサー「LightswitchApplication.company.company_id」を割り当てることができません -- 読み取り専用です

このタイプのパラメーターのデフォルト値を以前に取得した人はいますか?

4

1 に答える 1

5

LightSwitch では、外部キーを直接設定することはできません。テーブルからエンティティを取得し、そのエンティティをエンティティ プロパティに割り当てる必要があります。

したがって、あなたの場合は次のようになります。

partial void Screen1_Created()
{
    SelectedCompany = this.DataWorkspace.ApplicationData.Companies_SingleOrDefault(2);
    selected_active_property = true;
}
于 2012-12-05T11:00:25.203 に答える