一、简介

  ABP 的软删除是为了,在删除的时候,不是真正的删除数据,是为了保护数据。

二、具体实现

  在 Core  层,我们需要这个实体去实现这个 ISoftDelete 接口。实现它的 public virtual bool IsDeleted { get; set; } 方法即可。

namespace xxx.xxx.xxxxx
{
using Abp.Domain.Entities; /// <summary>
/// 餐馆招聘 (Mg58Infos_RestaurantRecruitment) 实体
/// </summary>
public partial class RestaurantRecruitment : BasicInfo, ISoftDelete
{
public bool IsDeleted { get; set; }
}
}

也可以实现 IFullAudited 方法,这个方法全一些。这个接口本身就继承了 ISoftDelete 接口。

namespace xx.xxx.xxx
{
using Abp.Domain.Entities.Auditing;
using xx.xx.xx;
using System; /// <summary>
/// 餐馆招聘 (Mg58Infos_RestaurantRecruitment) 实体
/// </summary>
public partial class RestaurantRecruitment : BasicInfo, IFullAudited
{
public long? LastModifierUserId { get; set ; }
public DateTime? LastModificationTime { get ;set ; }
public long? DeleterUserId { get; set; }
public DateTime? DeletionTime { get ; set ; }
public bool IsDeleted { get; set; }
}
}

更改以后需要更新数据库就可以了。

三、获取以删除的数据

  获取以删除的数据,我们需要用到如下的方法。加上这using 在查询的时间,系统会过滤掉对 isdeleted 这个字段的筛选,从而获取所有的数据。

#pragma warning disable 1591    //  Ignore "Missing XML Comment" warning

namespace Bit.xx.xxxxxx
{
using Abp.AutoMapper;
using Abp.Domain.Repositories;
using xx.xx.Mg58Infos;
using xx.x;
using x.x.Mg58Accounts.Dto;
using System.Threading.Tasks;
using Abp.Domain.Uow; /// <summary>
/// 餐馆招聘绑定 服务
/// </summary>
public class RecruitmentBindUserAppService : AbpZeroTemplateAppServiceBase, IRecruitmentBindUserAppService
{ private readonly IRepository<RecruitmentBindUser, int> _recruitmentBindUserRepository;
private readonly IRecruitmentBindUserManager _recruitmentBindUserManager;
private readonly IRepository<RestaurantRecruitment, long> _restaurantRecruitmentRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager; public RecruitmentBindUserAppService(
IUnitOfWorkManager unitOfWorkManager)
{
_unitOfWorkManager = unitOfWorkManager;
} public async Task<RecruitmentBindUserEditDto> RecruitmentUserFilter(RecruitmentBindInfoFilterInput input)
{
using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete))
{ //todo 此方法需要修改,获取发布的餐馆招聘数据将直接从单表获取
var recruitmentBindUser = await _recruitmentBindUserRepository.GetAsync(input.Id.Value); //todo 修改消息是否已读
var recruitmentInfo = _restaurantRecruitmentRepository.Get(recruitmentBindUser.RecruitmentId); var q = recruitmentBindUser.MapTo<RecruitmentBindUserEditDto>();
return q; }
} }
}

ABP 软删除ISoftDelete的更多相关文章

  1. LindDotNetCore~ISoftDelete软删除接口

    回到目录 概念 ISoftDelete即软删除,数据在进行delete后不会从数据库清除,而只是标记一个状态,在业务范围里都不能获取到这个数据,这在ORM框架里还是比较容易实现的,对传统的ado来说需 ...

  2. DDD Code First 迁移数据实现EF CORE的软删除,值对象迁移配置

    感谢Jeffcky大佬的博客: EntityFramework Core 2.0全局过滤 (HasQueryFilter) https://www.cnblogs.com/CreateMyself/p ...

  3. 深入理解 EF Core:使用查询过滤器实现数据软删除

    原文:https://bit.ly/2Cy3J5f 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知道如何组织 ...

  4. 在FreeSQL中实现「触发器」和软删除功能

    前言 最近做新项目,技术栈 AspNetCore + FreeSQL 这个ORM真的好用,文档也很完善,这里记录一下两个有关「触发器」的功能实现 修改实体时记录更新时间 模型代码 我的模型都是基于这个 ...

  5. tp5 model 中的软删除

    model中需use traits\model\SoftDelete; // 数据表中需添加一个 delete_time 字段保存删除时间 namespace app\index\model; use ...

  6. laravel框架总结(九) -- 软删除

    当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...

  7. 软删除脏数据job笔记

    某次处理一个case,发现线上库里有很多数据有问题.于是决定写一个job来将有问题的数据软删除掉.涉及到的两条SQL语句如下: <select id="loadTSKTVBillDai ...

  8. 关于Domino数据库的软删除

    在Domino的数据库属性的 “高级” 附签(选择文件->数据库->属性),选中“允许软删除”,这样我们就启用了软删除功能,当一个文档没有删除的时候我们可以使用NotesDatabase的 ...

  9. Mysql软删除

    所谓软删除(Soft Deleting),即在删除数据表中的数据时,并不直接将其从数据表中删除,而是将其标志为删除,即在每张表中设置一个删除字段(如:IsDeleted)等,默认情况下其值为0,及未删 ...

随机推荐

  1. cmake是什么

    1 cmake是什么 cmake是一个管理软件build过程的工具.它并不会直接build处软件可执行文件本身,而是build出可以build出软件本身的全部工程文件,比如makefiles.xcod ...

  2. 连通性 保证f具有介值性质

  3. Android笔记之Retrofit与RxJava的组合

    依赖 implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:con ...

  4. 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文

    今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏! import java.util.ArrayList; import java.util.Col ...

  5. selenium WebDriverException: Message: unknown error: DevToolsActivePort file doesnt exist

    在centos中使用无头chrome报以下错误 selenium.common.exceptions.WebDriverException: Message: unknown error: DevTo ...

  6. css三角形实现的几种方法的区别

    演变: .triangle{ height: 30px; width: 30px; display: inline-block; border: 30px solid; border-color: # ...

  7. 高并发压力下导致数据库bug

    环境信息:  linux 6.1 + oracle11.2.0.3 RAC     问题现象: 学校晚上6点选课,人数大概有3000,7点时,数据库报错如下(数据库到6点多还是可以连接的),数据库hu ...

  8. [算法]Trie树

    我是好文章的搬运工,原文来自博客园,博主一线码农,选自”6天通吃树结构“系列,地址:http://www.cnblogs.com/huangxincheng/archive/2012/11/25/27 ...

  9. ACM学习历程—HDU 4726 Kia's Calculation( 贪心&&计数排序)

    DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so carel ...

  10. ACM学习历程—POJ1088 滑雪(dp && 记忆化搜索)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...