如何通过Web API跟踪断开连接的实体

本文关键字:连接 实体 断开 跟踪 何通过 Web API | 更新日期: 2023-09-27 18:02:03

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

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

如果我想将更改存储到Audit表中,那么跟踪实体的行业惯例是什么?例如,显示旧价格和新价格

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

如何通过Web API跟踪断开连接的实体

Web API具有内置的日志记录和跟踪功能,下面是一个很好的示例。

这是一个使用log4net的TraceWriter实现,如果你更喜欢NLog,那么这里有一个NLog跟踪记录器,这里是另一个使用NLog的例子。

如果你想比较更改,那么你需要手动设置一些东西。您可以轻松访问JSON请求。这仅仅是新旧对象之间的差异问题。StackOverflow就是一个例子。我会记录请求头、请求体、端点地址、API密钥、旧对象(请求)和差异。然后,您可以将比较作为差异列表输出,或者进行并排比较(就像您在Git/SVN/TFS合并中看到的那样)。