EF Core – Soft Delete 实现

前言

在 SQL Server – Soft Delete 中, 讲到了如果在 SQL Server 实现 Soft Delete.

这篇来说说, EF Core 在中间扮演的角色.

 

主要参考

Entity Framework Core: Soft Delete using Query Filters

Soft delete and unique constraint

Using Unique Database Fields with Soft Deletes

 

Global Filter

通过 Global Filter 可以帮助我们写一堆的 where DateDeleted != null 的语句.

EF 很聪明的哦, Include 也会加上这些语句的. 根本就是为了 soft delete 而实现的功能嘛.

 

Intercept SaveChanges

通过 Intercept SaveChanges, 判断 entity entry state = delete, 然后转成 update deleted = true 也是一个不错的手法. 

 

Custom Migrations

实现 Soft Delete 需要许多的 trigger 帮忙, 这时就需要 custom migrations 来帮助管理 trigger 的代码了. 

 

posted @ 2021-10-19 21:45  兴杰  阅读(141)  评论(0编辑  收藏  举报