在WCF中取消删除实体

时间:2016-06-23 10:20:06

标签: c# wcf odata

我有一个使用OData服务的WCF客户端。在某些时候,用户可以删除实体。我使用DataServiceContext.DeleteObject(object entity)方法执行此操作。所以Entity.State变为Deleted。

用户可以撤消删除。如何将状态恢复为修改?

2 个答案:

答案 0 :(得分:0)

REST API是(或应该是)无状态的。您无法撤消已删除的内容。它已经消失了。

你能做的不是删除东西。而是在您设置为true的数据中保留IsDeleted标志,并在要删除某些内容时保存,并且当您要取消删除时可以设置回false。显然,您的所有查询和修改都需要考虑此标记。

答案 1 :(得分:0)

我终于通过以下方式实现了目标:

DataServiceContext.Detach(obj);
DataServiceContext.AttachTo("EntitySetName", obj);

这会从对象中删除已删除的状态,并将其添加为已修改。