一、简介

  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. iOS 蓝牙开发之(mutipeerConnectivity)

    蓝牙 mutipeerConnectivity iOS7 引入的一个全新框架 替代GameKit框架 多用于文件传输 iOS设备不联网也能给附近的人聊天 搜索和传输的方式 * 双方WIFI和蓝牙都没有 ...

  2. spring 配置bean-自己主动装配

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qilixiang012/article/details/28260477 概要:(蓝色为本节所讲) ...

  3. SQL 中GROUP BY 、ROLLUP、CUBE 关系和区别

    转自:http://www.cnblogs.com/dyufei/archive/2009/11/12/2573974.html 不言自明,看SQL就完全理解了,不需要过多解释,不错,分享之: ROL ...

  4. web项目中从不同的路径读取文件

    项目中的配置文件可以放在classpath下,webapp下获取其他任何一个指定的绝对地址,读取这些文件就从这三个地方去找.主要代码如下: private List<String> get ...

  5. LeetCode:删除链表中的节点【203】

    LeetCode:删除链表中的节点[203] 题目描述 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val ...

  6. loader与plugin,module与chunk,compiler与compilation

    loader将各类型的文件转为webpack能处理的有效模块(module) 插件处理范围更广的任务,例如打包优化.压缩等 module程序的离散功能块,一个文件对应一个module chunk若干m ...

  7. 计算机行业工作者-->面试的总结博文(【*持续补充】)

    1.博文题目:找实习/工作经验心得分享-偏IT技术向 http://blog.csdn.net/koudaidai/article/details/8063288 2.博文题目:百度,阿里 笔试面试 ...

  8. 51nod 1040

    题目 题解:我们要求的是这个式子: $ \sum\limits_{i = 1}^n {\gcd (n,i)}  $ (下面式子中的d都是n的因子) 变形下  $ \sum\limits_{d = 1} ...

  9. [acm]HDOJ 2064 汉诺塔III

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2064 汉诺塔变种,只能从中间专业,递归关系为:f(n)=3*f(n-1)+2. //汉诺塔变种,只能 ...

  10. win8、win10下卸载程序报错误2502、2503的解决办法

    首先打开任务管理器,可以通过右键点击桌面上的任务栏打开任务管理器,也可以通过同时按下键盘上的Ctrl+Alt+Delete键打开任务管理器. 打开任务管理器后,切换到“详细信息”选项卡,找到explo ...