1

WCF 4.0 を使用して C# で RESTful API (json) を作成しています。データは SQL Server 2012 db に保存されます。利用可能な 1 つの呼び出しにより、クライアントは次のようにオブジェクトを保存できます。

PUT /object/123

{
Subject: "my subject",
Comment: "my comment"
}

そこまでは大丈夫です。ただし、クライアントがオブジェクト内のパラメーターの 1 つだけを更新したい場合があります。このような:

PUT /object/123

{
Comment: "I changed my comment"
}

問題は、データベース テーブルを更新するためのベスト プラクティスはあるかということです。どのフィールドが提供されたかをどのように知ることができますか? 提供された列のみを更新する適切なコードを作成するにはどうすればよいですか?

4

1 に答える 1

0

大体こんな感じでやってます。最初の例は POST です。POST は、それが作成であることを示します。PUT メソッドは、更新であることを通知します。この場合、ID 123 のオブジェクトのすべてのフィールドを更新します。これは、クライアントが、すべてのフィールドが更新されたオブジェクト全体を送信できることを意味します。やみくもにコピーするだけです。

すべてのフィールドを送信するオーバーヘッドが必要ない場合は、デフォルト値 (null または空の文字列) を確認し、その値と等しくないフィールドのみを更新できます。

これもチェックしてください:

null に設定されていない EF エンティティの一部のプロパティのみを更新します

于 2012-10-04T13:54:30.160 に答える