1

我有一个 LightSwitch 应用程序,我需要在其中聚合数据并能够对其进行编辑。我遵循了 Eric Erhardts指南,该指南运行良好。然后在 DomainService 类中,我添加了这个以使更新成为可能:

public void UpdateRuleEntriesById(RuleEntriesById ruleEntryObject)
        {
            var origRuleEntry = (from RuleEntriesById in this.Context.RuleEntries
                                 where RuleEntriesById.Id == ruleEntryObject.Id
                                 select RuleEntriesById).FirstOrDefault();

            origRuleEntry.Country = ruleEntryObject.Country;
            this.Context.SaveChanges();
        }

这也很好,我可以在 RuleEntry 表中编辑和保存 Country 属性。但是 Country 是它自己的实体,我希望它显示为 AutocompleteBox,就像我在不使用 RIA 服务的情况下导入数据库一样。我想我需要告诉 Country 是 Country 表或其他东西的外来属性,但是我在哪里以及如何做到这一点?

谢谢

4

1 回答 1

0

聚合数据通常显示为只读,因为它是许多不同记录的汇总尝试在聚合实体中允许可编辑属性根本没有意义。哪些基础记录应该获取更改的数据?

如果您正在创建一个实体(将两个表中的属性组合在一起,但表示聚合数据),您需要做的就是为 LightSwitch 显示任何属性的组合框,只需将一个属性添加到您的 RIA 服务实体,即与相关实体的类型相同。那有意义吗?

请记住,您创建了新实体的形状,但 LightSwitch对它的实现一无所知(这完全由您处理)。如果您需要能够对其进行编辑,则必须提供适当的属性和方法(听起来您已经成功地为这些方法做了)。然后,LightSwitch 会为您处理实体的显示和编辑,并且再次取决于您如何处理任何更改的数据。再说一遍,这有意义吗?

于 2013-04-26T16:59:13.660 回答