拒绝特定实体的变更

时间:2011-08-21 10:53:39

标签: c# silverlight silverlight-4.0 wcf-ria-services

我在使用WCF RIA服务时遇到以下问题:我有一个表客户和一个表地址。客户可以拥有0 ... n个地址。有一个用于编辑客户的表单,其中有一个显示地址的Datagrid。您可以通过单击添加 / 编辑在子窗口中添加/编辑地址。现在就是这样:

问题是用户应该始终能够取消编辑。这不是问题除了:如果您创建新客户并向该客户添加地址,那么想要编辑地址但想要 取消 进行编辑。

  • 您无法对上下文执行RejectChanges,因为它会删除客户的地址。
  • 您不能使用单独的上下文,因为您无法建立外键关系。

你们怎么解决这个问题?

2 个答案:

答案 0 :(得分:6)

实体实现IRevertibleChangeTracking以支持此方案。由于它是明确实现的,因此您必须进行强制转换。以下代码将起作用。

((IRevertibleChangeTracking)address).RejectChanges();

答案 1 :(得分:0)

它适用于编辑但不适用于新的..