ADO.NETDataServiceを構成しています。
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列挙のMSDNページを読みましたが、EntitySetRights.WriteMergeとEntitySetRights.WriteReplaceの違いを識別できません。
Microsoft ADO.NETDataServicesの使用で以下の説明を見つけました
WriteMerge:マージベースの更新の場合、ペイロードはエンティティである必要があり、変更されるプロパティのみが含まれている必要があります。プロパティが含まれていない場合、サーバーに現在存在する値が保持されます。例14は、前の例で挿入されたカテゴリを更新するために使用されるペイロードを示しています。
WriteReplace:置換ベースの更新の場合、ペイロードはエンティティである必要があり、エンティティのすべてのプロパティ(ナビゲーションプロパティを除く)が含まれている必要があります。プロパティが含まれていない場合、値はサーバー上でプロパティのデフォルト値にリセットされます。PUTリクエストのこの動作は、AtomPub RFC 5023で説明されている動作にマップされます。例13は、前の挿入例で挿入されたカテゴリを更新するために使用されるペイロードを示しています。すべてのプロパティがペイロードに含まれているわけではないため、指定されていないプロパティは、データサービスによってデフォルト値にリセットされます。