专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

ABP Vnext 数据库表字段存在IsDeleted如何物理删除HardDeleteAsync

dotNET跨平台  · 公众号  ·  · 2022-10-24 08:00
ABP Vnext在写表实体会继承 xxxEntity : FullAuditedAggregateRoot此时这个聚合根会包含一个 IsDeleted字段属性,一旦继承了这个软删除字段,你在仓储对象调用 await _xxxxRepository.DeleteAsync(x => x.Id > 0) 时的时候,发现数据库的数据都是软删除,IsDeleted的数据都是true如果你不继承聚合根IsDeleted字段属性,你调用DeleteAsync是可以进行物理删除的。有一些场景,必须是物理删除+逻辑删除同时存在的情况下,就直接崩溃了。别担心,abp vnext替我们想到了这个场景。如果你表结构有IsDeleted字段属性,你想逻辑删除就调用DeleteAsync,如果你想进行物理删除,就调用HardDeleteAsync这个删除功能,他存在 RepositoryExtensions扩展属性里,使用的使用,要添加扩展属性的引用 using Volo.Abp.Domain.Repositories;才可以进行物理删除 await _xxxxRepository.HardDeleteAsync(x => x.Id > 0);如果不是硬删,只是Is ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照