我正在配置 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 显示了用于更新在前一个插入示例中插入的类别的有效负载。由于并非所有属性都包含在有效负载中,因此未指定的属性将由数据服务重置为其默认值。