前言

  对于FreeSql来说,删除的支持并不强大,只有在Where条件不为空的时候才执行,否则返回0或默认值,不执行删除操作;
 
 

语法

  fsql.Delete<Class>(object dywhere)
 
 
  条件参数支持:
    • 主键
    • 主键数组
    • 对象
    • 对象数组
    • 指定字段值
 

主键删除

  将主键作为sql的条件删除记录
_freeSql.Delete<Student>(15);
//DELETE FROM [Student] WHERE ([Id] = 15) _freeSql.Delete<Student>(new[] { 13, 14 });
//DELETE FROM [Student] WHERE ([Id] IN (13,14))
 

对象删除

  跟想象的不一样,使用对象的删除也是用的主键拼接删除条件
_freeSql.Delete<Student>(new Student { Id = 13, Name = "xx" });
//DELETE FROM [Student] WHERE ([Id] = 13)
_freeSql.Delete<Student>(new List<Student> { new Student { Id = 13, Name = "xx" }, new Student { Id = 14, Name = "xx" } });
//DELETE FROM [Student] WHERE ([Id] IN (13,14))
 

条件删除

  条件删除就是用指定字段拼接条件,也是用的比较频繁的
_freeSql.Delete<Student>(new { Name = "小明9" });
//DELETE FROM [Student] WHERE ([Name] = N'小明9')
 

字典删除

  既然新增支持字典,删除也支持,看下使用字典删除sql是什么样的
   

DELETE FROM [Student] WHERE ([Id] = 15 AND [Name] = N'xxxx')
//DELETE FROM [Student] WHERE ([Id] = 15 AND [Name] = N'xxxx') List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); var dic = new Dictionary<string, object>();
dic.Add("Id", 15);
dic.Add("Name", "xxxx");
list.Add(dic);
var dic1 = new Dictionary<string, object>();
dic1.Add("Id", 14);
dic1.Add("Name", "xxxx");
list.Add(dic1); _freeSql.DeleteDict(list).AsTable(nameof(Student)).ToSql();
//DELETE FROM [Student] WHERE (([Id] = 15 AND [Name] = N'xxxx') OR ([Id] = 14 AND [Name] = N'xxxx'))

  w(゚Д゚)w 使用字典删除会使用所有值使用AND拼接条件,多个字典之间使用OR拼接条件!!!(原以为使用对象删除会是这种方式)
 
 

查询删除

  使用查询出来的数据集作为条件删除指定记录
_freeSql.Select<Student>().Where(x => x.Age > 7).ToDelete().ToSql();
//DELETE FROM [Student] WHERE ([Id] in (select * from (SELECT a.[Id] FROM[Student] a WHERE(a.[Age] > 7)) ftb_del))
 
 
  注意:
    出于安全考虑,没有条件不执行删除动作,避免误删除全表数据。
 
  删除全表数据:
    _freeSqll.Delete().Where("1=1").ExecuteAffrows();//慎用
 
 
 
 
 

FreeSql学习笔记——5.删除的更多相关文章

  1. Jquery学习笔记 --ajax删除用户,使用了js原生ajax

    主要复习了php的pdo数据库操作,和js的ajax,真麻烦,希望jquery的ajax简单点. index.php: 1 <!DOCTYPE html> 2 <html lang= ...

  2. PHP学习笔记:删除与销毁session

    删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问. session_start(); $_SESSION['name'] = 'jobs' ...

  3. Jquery学习笔记:删除节点的操作

    假设如下的html代码 <div id="mydiv" style="width:100px;height:100px;border:1px solid red&q ...

  4. MySQL学习笔记:删除存储过程和函数

    删除存储过程.存储函数主要使用drop语句: drop procedure  —— 删除存储过程 drop function  —— 删除存储函数 语法: DROP {PROCEDURE|FUNCTI ...

  5. Docker学习笔记_删除某个镜像

    实验:删除某个镜像 sudo docker rmi [Image ID] 1.查看镜像的ID                  sudo docker images 2.删除镜像            ...

  6. MongoDB 学习笔记之 删除数据,集合,数据库

    删除数据,集合,数据库: 删除一个文档: db.media.deleteOne({"name": "Sky"}) 删除多个文档: db.media.delete ...

  7. Kafka 学习笔记之 删除Topic

    删除Topic 1. 显示所有Topic信息,testTopic是我们将要删除的Topic 2. 首先确认server.properties下面配置是否已经加上delete.topic.enable= ...

  8. PowerBuilder学习笔记之删除和加载PBL文件的方法

    删除PBL目录的方法:直接点删除键删除 加载PBL文件的方法:点Browse按钮选择PBL文件

  9. pandas学习笔记之删除指定列

    删除指定 def df["列名"] del df4["韩国地震影响"] 直接删除,df4中不在含有"韩国地震影响"这一列了 drop 不改变 ...

  10. git的使用学习笔记---分支删除

    一.使用场景: 1.修改bug,原来分支不管用 2,分支太多不易管理 二.方法 git branch -d branch1 无法删除:原因在与该分支为目前工作的分支,所以要切换分支 git check ...

随机推荐

  1. javascript 实现参数重载

    1.概要 在java中,同一个函数签名,比如 getUser,我们可以根据参数的不同,调用不同功能的方法.这也就是参数重载,如何在javascript也实现参数重载呢? 2.实现方法 function ...

  2. elastic 7.15 集群搭建

    准备三台ES 7.15 关于系统配可以参考之前的文章. https://www.cnblogs.com/yg_zhang/p/10214196.html 这里写一下 的集群配置.这里和之前配置有所不同 ...

  3. JavaScript ES6基础

    1.let声明 1.let不像var有变量声明提升,未声明直接使用会报错 console.log(a); //undefined var a; console.log(b); //报错 let b; ...

  4. chrome浏览器设置允许跨域

    前情 在访问测试搭建的测试环境的时候,发现接口因为跨域全部失败了,服务端又不想设置允许跨域,又急于使用,于是想到是不是可以使用跨域浏览器 放开chrome的跨域设置步骤 复制一个chrome快捷图标, ...

  5. Arrays Basics

    `#include ; using namespace std; int main() { int A[5];//数组的声明 int B[5] = { 2,4,6,8,10 };//数组的声明和初始化 ...

  6. 腾讯云对象存储联合DataBend云数仓打通数据湖和数据仓库

    随着数字化进程不断深入,数据呈大规模.多样性的爆发式增长.为满足更多样.更复杂的业务数据处理分析的诉求,湖仓一体应运而生.在Gartner发布的<Hype Cycle for Data Mana ...

  7. 腾讯云对象存储COS获Veritas认证,数据安全能力再升级

    近日获悉,腾讯云对象存储 COS 正式通过 Veritas 备份软件标准化测试,为数据安全再添新助力. Veritas 对 COS 的支持已经从底层打通,目前 Veritas 的 NetBackup ...

  8. 对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items

    对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items https://newbedev.com/httpcontext-feature ...

  9. 中电金信:AI数据服务

    ​ ​ 01 方案简介 AI数据服务解决方案为泛娱乐.电子商务.交通出行等行业提供数据处理.数据分析.AI模型训练等服务,通过自主研发的IDSC自动化数据服务平台与客户业务流程无缝衔接,实现超低延时的 ...

  10. 【XML】学习笔记第四章-schema

    Schema 概述 作用 与DTD相比Schema的优势 基础命名空间: 模式 引用方法 通过xsi:noNamespaceSchemaLocation引入 通过xsi:shemaLocation引入 ...