如何在WCF数据服务中部分更新实体

时间:2013-07-29 09:41:56

标签: entity-framework wcf odata wcf-data-services wcf-data-services-client

我正在寻找如何通过WCF数据服务5.5更新实体部分,只需更新整个实体的几个字段。

我找到了几种方法。

  1. 我可以使用context.AttachTo(...);context.UpdateObject(tp);更新整个实体但是所有实体的字段都会更新。我想只更新一些字段。

  2. RequestPipeline添加一些逻辑并删除不应更新的字段,如以下博客中所述:http://blogs.msdn.com/b/astoriateam/archive/2013/07/26/using-the-new-client-hooks-in-wcf-data-services-client.aspx

  3. 手动创建请求。

  4. 还有其他方法吗?有没有办法配置System.Data.Services.Client.DataServiceContext以启用部分更新?

1 个答案:

答案 0 :(得分:0)

大多数客户端默认使用HTTP PATCH,它在OData中使用并由WCF数据服务实现支持(以前作为MERGE,在指定PATCH之前)。

从您的问题来看,您似乎想知道从服务器到DBMS进行部分更新,而不是从客户端到服务器。您似乎也在使用Entity Framework提供程序。如果这是正确的,我建议你使用entity-framework标签提出你的问题,并将其从对WCF数据服务的任何引用中删除,因为它并不真正相关。