【问题标题】:RejectChanges for specific Entities拒绝特定实体的更改
【发布时间】:2011-08-21 10:53:38
【问题描述】:

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

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

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

你们会怎么解决呢?

【问题讨论】:

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


    【解决方案1】:

    Entity 实现 IRevertibleChangeTracking 来支持这种情况。由于它是显式实现的,因此您必须强制转换它。以下代码将起作用。

    ((IRevertibleChangeTracking)address).RejectChanges();
    

    【讨论】:

    • 接口名称中的微小拼写错误 (IRevertibleChangeTracking) msdn.microsoft.com/en-us/library/…
    • 非常有帮助,正是我需要的信息。谢谢。
    • 相关财产怎么样?我有
    【解决方案2】:

    它在编辑的情况下有效,但在新的情况下无效..

    【讨论】:

    • 如果是新的,您必须再次分离实体。
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2013-10-15
    • 2020-05-30
    相关资源
    最近更新 更多