Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WriteReplace与&;ADO.NET数据服务中的WriteEmerge?_.net_Wcf Data Services - Fatal编程技术网

WriteReplace与&;ADO.NET数据服务中的WriteEmerge?

WriteReplace与&;ADO.NET数据服务中的WriteEmerge?,.net,wcf-data-services,.net,Wcf Data Services,我正在配置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.

我正在配置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);
}
我已经阅读了的MSDN页面,但我无法识别EntitySetRights.WriteReme和EntitySetRights.WriteReplace之间的区别

我在网站上找到了下面的解释

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

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


允许基于合并的写入更新。 允许使用WriteReplace替换

请看一下这个链接。

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

使用WriteEmerge,您可以将带有合并谓词的请求发送到实体的端点, 使用WriteReplace,您可以将带有PUT动词的请求发送到实体的端点

希望这有帮助