3

假设我有一个应用程序允许客户通过 Web API 将产品添加/更新到我的数据库中。我有这样的轻量级 DTO:

public class ProductDTO
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

假设我想将更改存储到审计表中,跟踪实体的行业惯例是什么。例如,显示旧价格与新价格

在我的 WebAPI 控制器中接收到 DTO 后,我是否必须从数据库中查询当前记录、进行对象比较并保存差异?- 这是唯一的方法吗?

4

1 回答 1

1

Web API 具有内置的日志记录和跟踪这是一个很好的演练

这是一个使用 log4net 的 TraceWriter 实现,或者如果 NLog 更适合您,那么有一个NLog 跟踪记录器,这里是另一个使用 NLog 的示例

如果要比较更改,则需要手动设置。您可以轻松访问 JSON 请求。这只是一个问题,或者在旧对象和新对象之间运行差异。StackOverflow 上有一个例子。我会记录请求标头、请求正文、端点地址、API 密钥、旧对象(请求)和差异。然后,您可以将比较结果输出为差异列表,或者进行并排比较(如您在 Git / SVN / TFS 合并中所见)。

于 2014-05-06T14:22:23.147 回答