LightSwitch中WCF RIA Domainservice的外部/相关数据

时间:2013-04-26 12:37:46

标签: foreign-keys wcf-ria-services visual-studio-lightswitch

我有一个LightSwitch应用程序,我需要聚合数据并能够编辑它。我跟着Eric Erhardts guide这很好。然后在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是Country table的外来属性,但是我在哪里以及如何做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

聚合数据通常显示为只读,因为它是许多不同记录的摘要。尝试在聚合实体中允许可编辑属性实际上没有意义。哪个底层记录应该能够获得更改的数据?

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

请记住,您创建了新实体的形状,但LightSwitch知道没有关于它的实现(完全由您处理)。如果您需要能够编辑它,您必须提供适当的属性和方法(听起来你已经成功地完成了这些方法)。 LightSwitch然后处理显示和放大为您编辑实体,&它再次取决于您如何处理任何已更改的数据。这又有意义吗?