WriteReplace与&;ADO.NET数据服务中的WriteEmerge?
我正在配置ADO.NET数据服务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.
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显示了用于更新在上一个插入示例中插入的类别的有效负载。由于并非所有属性都包含在有效负载中,因此数据服务会将未指定的属性重置为其默认值
在ADO.NET数据服务服务器中,我们将writeEmerge定义为更改实体的单个属性。 (例如更改员工实例的名字。) 和WriteReplace,将一个实体替换为另一个实体。 (例如,通过将实体的所有属性重置为默认值,然后显式设置属性来更改员工。) 使用WriteEmerge,您可以将带有合并谓词的请求发送到实体的端点, 使用WriteReplace,您可以将带有PUT动词的请求发送到实体的端点 希望这有帮助