我有一个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的外来属性,但是我在哪里以及如何做到这一点?
由于
答案 0 :(得分:0)
聚合数据通常显示为只读,因为它是许多不同记录的摘要。尝试在聚合实体中允许可编辑属性实际上没有意义。哪个底层记录应该能够获得更改的数据?
如果您正在创建一个新实体(它将两个表中的属性组合在一起,但不表示聚合数据),那么您需要做的就是LightSwitch显示任何属性的组合框,是向RIA服务实体添加属性,该属性与相关实体的类型相同。这有意义吗?
请记住,您创建了新实体的形状,但LightSwitch知道没有关于它的实现(完全由您处理)。如果您需要能够编辑它,您必须提供适当的属性和方法(听起来你已经成功地完成了这些方法)。 LightSwitch然后处理显示和放大为您编辑实体,&它再次取决于您如何处理任何已更改的数据。这又有意义吗?