美文网首页
ABP Vnext 数据库表字段存在IsDeleted如何物理删

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

作者: 畅聊了个科技 | 来源:发表于2022-08-19 23:36 被阅读0次

ABP Vnext在写表实体会继承

xxxEntity : FullAuditedAggregateRoot<Guid>

此时这个聚合根会包含一个 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);

如果不是硬删,只是IsDelete=true的时候,在某些时候查询又尴尬了。
此时构造函数注入下

public IDataFilter dataFilter { get; set; }

然后逻辑部分写

using (dataFilter.Disable<ISoftDelete>()) //取消软删除的过滤
{
  //这里写查询代码
  var xxxList = await _xxxxxRepository.GetListAsync()
} 

这个时候查询的数据,就是过滤掉软删除的所有数据了。

相关文章

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

    ABP Vnext在写表实体会继承 此时这个聚合根会包含一个 IsDeleted字段属性,一旦继承了这个软删除字段...

  • ABP Vnext 组织单元管理AbpOrganizationU

    在使用abp vnext默认数据库生成的组织单元表时AbpOrganizationUnits会发现有个Code字段...

  • ABP vnext学习记录二 入门

    ABP vnext学习记录二 入门 1、如何开始 地址:http://abp.io/get-started,选择直...

  • 运行Abp Vnext 微服务示例

    abp vnext的微服务https://docs.abp.io/en/abp/latest/Samples/Mi...

  • Abp vNext 聚合根扩展字段

    Abp中审计字段或者实体本身都是一体的,有时候为了不破坏实体的主体结构,不得不在结构上添加某些信息的情况下,我们使...

  • abp vnext日常问题

    abp vnext 中有许多ids4的表,生成时出了一些问题。 将Docs模块从sql server 换成mysq...

  • MySQL数据库的操作大全

    1、进入数据库 2、简单命令的使用 3、修改表 1)修改表名 2)增加字段 3)修改字段 4)添加复合主键 5)删...

  • MYSQL错误说明

    1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删...

  • sql常用方法

    判断是否存在数据库.表.字段 创建数据库 创建表 删除数据库表 查看 对新建的表进行联合查询 对联合查询的结果新建...

  • ABP vnext学习记录一 介绍

    ABP vnext学习记录一 介绍 ABP是用于创建现代Web应用程序的完整体系结构和强大的基础架构! 为什么是v...

网友评论

      本文标题:ABP Vnext 数据库表字段存在IsDeleted如何物理删

      本文链接:https://www.haomeiwen.com/subject/gcrpgrtx.html