删除

HiSql数据删除提供了两种类型的删除方式(按实体对象删除和按条件删除)

按实体对象删除表数据

实体对象也可以是具体的实体类也可以是匿名类也可是字典数据 如下代码所示

H_Test 表中的主键是Id

通过该方式删除传入的对象中一定要有主键,否则删除时将会报错,也就是会忽略非主键的条件值。

int v=sqlClient.Delete("H_Test", new { Id = "1"}).ExecCommand();
// v大于0表示删除成功  否则为失败
1
2

如果不传任何条件则表示删除该表的所有数据,该操作有风险请慎用

int v=sqlClient.Delete("H_Test").ExecCommand();

1
2

通过Where条件进行表数据删除

使用了Where条件删除就不能使用对象删除否则将会抛出异常

关于Where的条件语法请参照查询 与where关的文档

  sqlClient.Delete("H_Test").Where(new Filter { { "DID", OperType.GT, 200 } }).ExecCommand();
1

也支持以下写法

  sqlClient.Delete("H_Test").Where("DID > 200").ExecCommand();
1

查看生成的sql语句

调用ToSql()方法即可,当前连接是哪一个类型的数据就会生成对应数据库的源生代码

  string sql=sqlClient.Delete("H_Test").Where("DID > 200").ToSql();
1