3

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は、前の挿入例で挿入されたカテゴリを更新するために使用されるペイロードを示しています。すべてのプロパティがペイロードに含まれているわけではないため、指定されていないプロパティは、データサービスによってデフォルト値にリセットされます。

4

2 に答える 2

1

WriteMerge-マージベースの更新が許可されます。WriteReplace-置換は許可されています

このリンクをご覧ください。 http://msdn.microsoft.com/en-us/magazine/dd569758.aspxリンクテキスト

于 2009-10-12T04:45:05.307 に答える
1

ADO.NET Data Servicesサーバーでは、WriteMergeをエンティティの個々のプロパティを変更するものとして定義します。(例は、従業員インスタンスのFirstNameの変更です。)そして、エンティティを別のエンティティに置き換えるものとしてWriteReplaceを使用します。(例として、エンティティのすべてのプロパティをデフォルトにリセットして従業員を変更し、プロパティを明示的に設定します。)

WriteMergeを使用すると、MERGE動詞を含むリクエストをエンティティのエンドポイントに送信できます。WriteReplaceを使用すると、PUT動詞を含むリクエストをエンティティのエンドポイントに送信できます。

お役に立てれば。

于 2009-10-27T22:06:53.647 に答える