3

我正在配置 ADO.NET 数据服务。

public static void InitializeService(IDataServiceConfiguration config)
{
    // config.UseVerboseErrors = true;
    // TODO: set rules to indicate which entity sets and service operations are
    //       visible, updatable, etc.
    // Examples:
    config.SetEntitySetAccessRule("User", EntitySetRights.WriteMerge);
    config.SetEntitySetAccessRule("User", EntitySetRights.WriteReplace);
}

我已经阅读了EntitySetRights Enumeration的 MSDN 页面,但我无法确定 EntitySetRights.WriteMerge 和 EntitySetRights.WriteReplace 之间的区别

我在使用 Microsoft ADO.NET 数据服务中找到了以下解释

  • WriteMerge:在基于合并的更新的情况下,有效负载需要是一个实体,并且只需要包含正在修改的属性。如果不包含某个属性,则将保留服务器中当前存在的值。示例 14 显示了用于更新前面示例中插入的类别的有效负载。

  • WriteReplace:在基于替换的更新的情况下,有效负载需要是一个实体,并且应该包含该实体的所有属性(不包括导航属性)。如果不包含某个属性,则服务器上的值将重置为该属性的默认值。PUT 请求的这种行为映射到 AtomPub RFC 5023 中描述的行为。示例 13 显示了用于更新在前一个插入示例中插入的类别的有效负载。由于并非所有属性都包含在有效负载中,因此未指定的属性将由数据服务重置为其默认值。

4

2 回答 2

1

允许基于 WriteMerge-Merge 的更新。允许写入替换-替换

请看一下这个链接。 http://msdn.microsoft.com/en-us/magazine/dd569758.aspx链接文本

于 2009-10-12T04:45:05.307 回答
1

在 ADO.NET 数据服务服务器中,我们将 WriteMerge 定义为更改实体的各个属性。(一个例子是更改员工实例的名字。)和 WriteReplace 作为用另一个实体替换一个实体。(一个例子是通过将实体的所有属性重置为默认值然后显式设置属性来更改员工。)

使用 WriteMerge ,您可以将带有 MERGE 动词的请求发送到实体的端点,使用 WriteReplace ,您可以将带有 PUT 动词的请求发送到实体的端点。

希望这可以帮助。

于 2009-10-27T22:06:53.647 回答