我正在编写一个 WCF Rest API,它为一个实体提供 CRUD 功能,比如Student。这是它的定义方式:
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,但没有 name 和 LastName。ID 为必填字段。我需要知道在这种情况下最好的方法/设计是什么?
我可以从数据库中获取现有记录并对两者进行比较,然后根据需要进行更新。这种方法的问题是我无法知道用户是否真的想要将字段更新为空。再说一次,比较似乎不是一个整洁的设计。有任何想法吗?