1

我正在使用 WCF 4.0 在 C# 中编写一个 RESTful API (json)。数据存储在 SQL Server 2012 数据库中。一个可用的调用将允许客户端保存对象,如下所示:

PUT /object/123

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

到目前为止一切都很好。但有时客户端只想更新对象中的一个参数。像这样:

PUT /object/123

{
Comment: "I changed my comment"
}

问题是:是否有在数据库表中进行更新的最佳实践?我怎么知道提供了哪些字段(假设某些字段应该可以为空)?如何编写只更新提供的那些列的好代码?

4

1 回答 1

0

一般我是这样做的。您的第一个示例应该是 POST。POST 告诉你这是一个创建。PUT 方法会告诉您这是一个更新,在这种情况下,我会更新 id 为 123 的对象的所有字段。这意味着客户端可以将其整个对象发送给您,其中任何/所有字段都已更新。你只是盲目地复制它们。

我想如果您不希望发送所有字段的开销,您可以检查默认值(null 或空字符串)并仅更新那些不等于该值的字段。

还要检查一下:

仅更新 EF 实体上未设置为 null 的某些属性

于 2012-10-04T13:54:30.160 回答