2011-08-21 67 views
5

我遇到以下WCF RIA服务问题:我有一个表客户和一个表地址。一个客户可以有0 ... n个地址。有一个用于编辑客户的表单,并带有显示地址的Datagrid。通过点击添加/编辑可以在子窗口中添加/编辑地址。现在是这样的事情:针对特定实体的拒绝更改

问题是,用户应该始终能够取消编辑。这不是一个问题除了:如果您创建一个新的客户,你的地址添加到客户,然后要编辑的地址,但要取消该编辑。

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

你们会如何解决这个问题?

回答

6

实体实现IRevertibleChangeTracking以支持此场景。由于它是明确实施的,你必须施放它。以下代码将起作用。

((IRevertibleChangeTracking)address).RejectChanges(); 
+0

微小的拼写错误在接口名称(IRevertibleChangeTracking)http://msdn.microsoft.com/en-us/library/system .componentmodel.irevertiblechangetracking%28v = VS.95%29.aspx –

+0

谢谢。你会相信我会一直搞错吗? :) –

+0

非常有帮助,只是我需要的信息。谢谢。 – peter

0

它的工作在编辑的情况下,而不是在案件的新..

+0

如果是新的,你需要再次对实体进行解锁。 – LueTm