0

Studentというエンティティに CRUD 機能を提供する WCF Rest API を作成しています。定義方法は次のとおりです。

class Student
{
  Guid Id;
  string Name;
  string LastName;
  string Age;
  DateTime DOB; 
}

私のサービス契約は次のようなものです:

class StudentService
{
  [WebInvoke(Method = "POST")]
  public void Add(Student student)
  {...}

  [WebInvoke(Method = "PUT")]
  public void Update(Student student)
  {...}

  [WebGet()]
  public void Get(string Id)
  {...}

}

問題は、学生の記録を更新している間、クライアントが完全なデータを提供しない可能性があるということです。たとえば、ID と DOB は指定できますが、名前と LastName は指定できません。Id は必須フィールドです。そのような場合、何が最善のアプローチ/設計になるかを知る必要がありますか?

データベースから既存のレコードをフェッチし、両方を比較してから、必要に応じて更新できます。このアプローチの問題は、ユーザーが実際にフィールドを null に更新したいかどうかを知る方法がないことです。繰り返しになりますが、比較はきちんとしたデザインではないようです。何か案は?

4

2 に答える 2

0

spですべての値を送信し、レコードの更新中にnullをチェックするためのcaseステートメントを記述しますUpdateステートメントでisnullをチェックできるため、パラメーターがnullの場合は、独自の値でそれらを更新します

お気に入り

Update Student set Name = case when isnull(@Name,'') ='' then Name else @Name end where Id = 1127871

于 2012-05-04T13:31:01.537 に答える