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 に更新したいかどうかを知る方法がないことです。繰り返しになりますが、比較はきちんとしたデザインではないようです。何か案は?