如何将EntityFrameworkCore的软删除与查询过滤器结合实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1357个文字,预计阅读时间需要6分钟。
注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能会有所变动。今天,我将探讨如何轻松实现软删除(或逻辑删除)。
我的意图是:
注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能存在变动。
继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除)。我的意思是以透明的方式实现软删除,例如,您是物理上的删除行。
要实现软删除,您需要添加一列以指示该行数据是否被逻辑删除。如果您想知道该行被删除,可以使用布尔列,如果您想知道删除的时间,可以使用日期列。其次是更改所有查询,使用此列过滤结果集;您还需要将删除语句替换成为更新语句。
现在我们来看看如何用 Entity Framework Core 来实现这两件事!
添加IsDeleted列
实体框架核心提供了非常灵活的映射。在上一篇关于跟踪列的博客中,您将找到映射列的3种方法。在介绍中,我已经说过软删除应该是透明的,所以我决定在类型中不暴露IsDeleted属性。
本文共计1357个文字,预计阅读时间需要6分钟。
注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能会有所变动。今天,我将探讨如何轻松实现软删除(或逻辑删除)。
我的意图是:
注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能存在变动。
继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除)。我的意思是以透明的方式实现软删除,例如,您是物理上的删除行。
要实现软删除,您需要添加一列以指示该行数据是否被逻辑删除。如果您想知道该行被删除,可以使用布尔列,如果您想知道删除的时间,可以使用日期列。其次是更改所有查询,使用此列过滤结果集;您还需要将删除语句替换成为更新语句。
现在我们来看看如何用 Entity Framework Core 来实现这两件事!
添加IsDeleted列
实体框架核心提供了非常灵活的映射。在上一篇关于跟踪列的博客中,您将找到映射列的3种方法。在介绍中,我已经说过软删除应该是透明的,所以我决定在类型中不暴露IsDeleted属性。

