假設我有一個允許客戶通過Web API向我的數據庫添加/更新產品的應用程序。我有這樣的輕量級DTO:如何通過Web API跟蹤斷開的實體
public class ProductDTO
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
跟蹤實體的行業慣例是什麼,假設我想將更改存儲到審計表中。例如,顯示舊價格與新價格
在我的WebAPI控制器中接收到DTO後,是否必須從數據庫中查詢當前記錄,進行對象比較並保存差異? - 這是唯一的方法嗎?
審計表將成爲一種方式;但是,您可能還想知道「誰更改了此記錄」以及審計表可能不支持的各種其他數據。在這種情況下,你應該考慮堅持一個單獨的實體。 – user1477388
比較通過WebAPI接收的對象的唯一方法是首先從數據庫中檢索現有記錄以進行比較嗎? –
基本上,我所說的是創建一個名爲Product_Audit的獨立實體,其功能與審計表相同,除非您必須在應用程序中填充內容(SQL不會爲您執行此操作)。這樣,您可以添加所需的其他所有信息,如用戶ID以跟蹤誰更新了記錄。爲了比較,你可以簡單地加入這個表'在ProductDTO.Id等於Product_Audit.ProductId'上。 – user1477388