FreeSql配合仓储实现软删除】的更多相关文章

该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前段时间使用FreeSql作为ORM,写了一个简单的CMS,在这里总结一下其中的使用心得. 仓储配合全局过滤器 1. 统一的删除标志 如:数据库字段 bool IsDeleted,代表删除标志. 需要配合仓储可实现,统一的删除标志,不需要加where(r=>r.deleted==false),取数据时,自动过滤数据. 接口 ISoftDeleteAduitEntity.cs public interface ISoftDeleteAduitE…
前言 最近做新项目,技术栈 AspNetCore + FreeSQL 这个ORM真的好用,文档也很完善,这里记录一下两个有关「触发器」的功能实现 修改实体时记录更新时间 模型代码 我的模型都是基于这个 ModelBase 派生的,自带三个属性字段 public abstract class ModelBase : ISoftDelete { public DateTime CreatedTime { get; set; } = DateTime.Now; public DateTime Modi…
thinkphp自动完成.软删除 和时间戳 一.总结 自动完成:没有手动赋值的情况下进行手动处理 软删除:实现假删除,可以进行恢复 时间戳:系统支持自动写入创建和更新的时间戳字段 二.thinkphp自动完成.软删除 和时间戳 1.自动完成 1.修改器和自动完成区别 修改器:数据赋值的时候自动进行转换处理 自动完成:没有手动赋值的情况下进行手动处理 2.自动完成 // 增加和修改操作都会执行 protected $auto=[]; // 创建数据执行 protected $insert=['cr…
model中需use traits\model\SoftDelete; // 数据表中需添加一个 delete_time 字段保存删除时间 namespace app\index\model; use think\Model; use traits\model\SoftDelete; class User extends Model { use SoftDelete; protected static $deleteTime = 'delete_time'; // 5.2版本之前必须用stati…
当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空.   1.做一些设置 首先在模型类中要使用SoftDeletestrait,该trait为软删除提供一系列相关方法,具体可参考源码Illuminate\Database\Eloquent\SoftDeletes,此外还要设置$date属性数组,将deleted_at置于其中: <?php namesp…
某次处理一个case,发现线上库里有很多数据有问题.于是决定写一个job来将有问题的数据软删除掉.涉及到的两条SQL语句如下: <select id="loadTSKTVBillDailyFlowData" parameterClass="map" resultClass="tsKTVDailyFlowData"> /*+zebra:w*/SELECT ID, DistributionDetailID, PayPlanID, Flow…
在Domino的数据库属性的 “高级” 附签(选择文件->数据库->属性),选中“允许软删除”,这样我们就启用了软删除功能,当一个文档没有删除的时候我们可以使用NotesDatabase的GetDocumentByID(NoteID)和GetDocumentByUNID(UNID)方法来得到该文档,如果我们将该文档软删除后,我们在使用GetDocumentByUNID来获取该文档就会报如下错误: ---------------------------Invalid universal id (…
所谓软删除(Soft Deleting),即在删除数据表中的数据时,并不直接将其从数据表中删除,而是将其标志为删除,即在每张表中设置一个删除字段(如:IsDeleted)等,默认情况下其值为0,及未删除状态:当需要将数据删除时,则将此字段更新为1. 与之对应的,将数据从数据库中彻底删除的方式称为硬删除,即Hard Deleting 当然,文中提到了另一种方法,及为数据添加状态字段(如:Statuses)等,来描述当前数据的状态,以便更好地跟踪数据.…
数据的“软删除”---把数据真正删除在某些时候会有问题.IsDeleted字段,false表示不删除,而是让用户可以看到,true表示是软删除,用户看不到. 一个表引用另外一张表的时候一定要引用主键. 用户的初始密码和密码重置,解锁. 第一步,再次设置数据库,为表T_Operator添加一个字段“IsDeleted”,bit类型(就是C#中的bool),不允许为空,此时保存时候会提示如下:…
本文翻译自<Entity Framework Core: Soft Delete using Query Filters>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final).正式版发布后,功能可能存在变动. 继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除).我的意思是以透明的方式实现软删除,例如,您是物理上的删除行…
知识都是有联系的,这绝对是真理.作为一名小白,看了一点官方文档,把我自己理解的软删除操作给大家讲讲.有些就是套用官方文档的话. 定义:什么是软删除呢,所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被"删除"了. 通俗易懂说法:数据库的表中,使用了一个日期字段作为标识状态,这个日期字段可以自定义,这里我们使用deleted_at,如果对应模型被软删除,则该条记录的deleted_at字段的值为删除时…
回到目录 概念 ISoftDelete即软删除,数据在进行delete后不会从数据库清除,而只是标记一个状态,在业务范围里都不能获取到这个数据,这在ORM框架里还是比较容易实现的,对传统的ado来说需要对sql统一进行拦截和条件过滤. 实施步骤 实体继承ISoftDelete 数据上下文实现对IsDeleted的过滤 对删除方法进行调整,添加对ISoftDelete的支持 代码实现 1 实体继承ISoftDelete protected override void OnModelCreating…
软删除及其相关实现 在模型类中要使用SoftDeletestrait并设置$date属性数组 <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Student extends Model { use SoftDeletes; //设置表名 public $table = 'students'; //设置主键…
感谢Jeffcky大佬的博客: EntityFramework Core 2.0全局过滤 (HasQueryFilter) https://www.cnblogs.com/CreateMyself/p/8491058.html 什么是值对象 没有唯一的标识,固定不变的,表示一个具体的概念,用来描述一个东西的特征,代表是什么,使用时直接添加或替换,值对象在迁移时,会以字段的形式迁移到数据库中 软删除 定义删除的接口 public interface ISoftDelete { bool IsDel…
什么是软删除 后台操作,删除一条记录,不希望真正的从数据库中删除,用个字段标记一下.比如delete_at.默认0.当执行删除操作,更新delete_at为当前时间戳 这样列表显示的时候只查询delete_at为0的记录. 牵涉到Yii2的中的操作 引入SoftDeleteBehavior文件 <?php namespace common\behavior; use yii\base\Behavior; use yii\base\Event; use yii\db\ActiveRecord; c…
查询结果包括已被软删除的记录: Model::withTrashed()->get(); 只查询软删除记录: Model::onlyTrashed()->get(); PS:个人博客-Laravel 查询包括软删除的记录…
本文翻译自<Entity Framework Core: Soft Delete using Query Filters>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final).正式版发布后,功能可能存在变动. 继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除).我的意思是以透明的方式实现软删除,例如,您是物理上的删除行…
EntityFramework.DynamicFilters 实现软删除和租户过滤…
软删除 简单的说,就是当执行删除操作的时候,不正真执行删除操作,而是在逻辑上删除一条记录.这样做的好处是可以统计数据,可以进行恢复操作等等. 预备知识 Managers Managers 是django models 提供的一个用于提供数据库查询操作的接口,对于Django应用程序中的每个model都会至少存在一个Manager 详细:https://docs.djangoproject.com/en/dev/topics/db/managers/ django实现软删除model firstl…
软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. 1 普通删除 在软删除之前咱先看看普通的删除方法: 1.1 直接通过主键删除 public function getDelete() { Article::destroy(1); Article::destroy([1,2,3]); } 1.2 获取model后删除 public function…
当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空.   1.做一些设置 首先在模型类中要使用SoftDeletestrait,该trait为软删除提供一系列相关方法,具体可参考源码Illuminate\Database\Eloquent\SoftDeletes,此外还要设置$date属性数组,将deleted_at置于其中: <?php namesp…
一.简介 ABP 的软删除是为了,在删除的时候,不是真正的删除数据,是为了保护数据. 二.具体实现 在 Core  层,我们需要这个实体去实现这个 ISoftDelete 接口.实现它的 public virtual bool IsDeleted { get; set; } 方法即可. namespace xxx.xxx.xxxxx { using Abp.Domain.Entities; /// <summary> /// 餐馆招聘 (Mg58Infos_RestaurantRecruitm…
很多web程序一般的偶不会设计真的物理删除了. 基本上都是在在数据库加一个标记,就得当作已经删除了.同时在查询的时候,过滤已经标记删除的数据 ef core实现软删除是非常简单的,直接在OnModelCreating动态创建一个IsDeleted字段,bool类型.然后扔到ef core的查询过滤器里面去. protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var entityType in…
很多web程序一般的偶不会设计真的物理删除了. 基本上都是在在数据库加一个标记,就得当作已经删除了.同时在查询的时候,过滤已经标记删除的数据 ef core实现软删除是非常简单的,直接在OnModelCreating动态创建一个IsDeleted字段,bool类型.然后扔到ef core的查询过滤器里面去. protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var entityType in…
ef core提供了Global Query Filters特性来实现多租户与软删除,收集了一些实现方法. 最简单的例子时微软官方的特性解释. https://docs.microsoft.com/en-us/ef/core/querying/filters modelBuilder.Entity<Post>().HasQueryFilter(p => !p.IsDeleted); 比较全面的实现可参考: https://gunnarpeipman.com/ef-core-global-…
删除数据Delete方法,参数为struct的指针并且成为查询条件.注意:当删除时,如果user中包含有bool,float64或者float32类型,有可能会使删除失败 package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "log" ) var engine *xorm.Engine type Use…
01-需要在设置软删除的模型里设置…
在django中,实现这个功能很简单,我们采用一个字段用来保存删除的时间.若记录没有被删除,那么设置该值为None,如果被删除,那么设置时间为删除的时间. class BaseSchema(models.Model): createdAt = models.DateTimeField("创建时间",auto_now_add=True) updatedAt = models.DateTimeField("更新时间",auto_now=True) deletedAt =…
原文:https://bit.ly/2Cy3J5f 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知道如何组织但又不影响理解的句子. 这篇文章是关于如何使用 EF Core 实现软删除的,即表面上删除了数据,但数据并没有被物理删除,在需要的时候你还是可以把它读取出来的.软删除有很多好处,但也有一些值得注意的问题.这篇文章会教你使用 EF Core 实现一般的软删除和复杂的级联软删除.在此过程中,我还会介绍如…
ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package FreeSql.DbContext dotnet add package FreeSql.Provider.MySqlConnector 配置 Startup.cs 注入 public void ConfigureServices(IServiceCollection services) { IConfi…