1

我正在尝试为 Lightswitch 中的多值参数设置默认值,但没有运气。

例如,我有一个硬件清单。“硬件”表具有 ('active', bool) 和 ('company_id',int) 字段。Company_id 是 Company 表的外键,其中包含可供选择的公司列表。

我想根据这两个字段过滤我的 Lightswitch 屏幕,但是当屏幕第一次加载时,我希望它默认为主要公司,用于活动硬件。

我已经为我的“活动”参数创建了本地属性,并将其添加到屏幕上。设置公司参数的下拉列表需要:

  • 添加数据项(作为查询,从我的数据源中选择名为 Companies 的表)
  • 添加数据项(作为公司类型的本地属性,名为 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 回答