mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-08 01:10:57 +08:00
Updated 删除 (markdown)
23
删除.md
23
删除.md
@@ -1,6 +1,8 @@
|
||||
删除是一个非常危险的操作,FreeSql对删除支持并不强大,默认仅支持单表、且有条件的删除方法。
|
||||
**中文** | [English](Delete-Data)
|
||||
|
||||
若Where条件为空的时候执行,仅返回0或默认值,不执行真正的SQL删除操作。
|
||||
删除是一个非常危险的操作,FreeSql 对删除支持并不强大,默认仅支持单表、且有条件的删除方法。
|
||||
|
||||
若 `Where` 条件为空的时候执行,仅返回 `0` 或默认值,不执行真正的 SQL 删除操作。
|
||||
|
||||
```csharp
|
||||
static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
|
||||
@@ -21,13 +23,14 @@ class Topic {
|
||||
```csharp
|
||||
fsql.Delete<Topic>(object dywhere)
|
||||
```
|
||||
dywhere 支持
|
||||
|
||||
`dywhere` 支持:
|
||||
|
||||
* 主键值
|
||||
* new[] { 主键值1, 主键值2 }
|
||||
* Topic对象
|
||||
* new[] { Topic对象1, Topic对象2 }
|
||||
* new { id = 1 }
|
||||
* `new[] { 主键值1, 主键值2 }`
|
||||
* Topic 对象
|
||||
* `new[] { Topic对象1, Topic对象2 }`
|
||||
* `new { id = 1 }`
|
||||
|
||||
```csharp
|
||||
var t1 = fsql.Delete<Topic>(new[] { 1, 2 }).ToSql();
|
||||
@@ -45,7 +48,7 @@ var t4 = fsql.Delete<Topic>(new { id = 1 }).ToSql();
|
||||
|
||||
## 删除条件
|
||||
|
||||
> 出于安全考虑,没有条件不执行删除动作,避免误删除全表数据。删除全表数据:fsql.Delete\<T\>().Where("1=1").ExecuteAffrows()
|
||||
> 出于安全考虑,没有条件不执行删除动作,避免误删除全表数据。删除全表数据:`fsql.Delete<T>().Where("1=1").ExecuteAffrows()`
|
||||
|
||||
```csharp
|
||||
var t5 = fsql.Delete<Topic>().Where(a => a.Id == 1).ToSql();
|
||||
@@ -66,7 +69,7 @@ var t8 = fsql.Delete<Topic>().Where(items).ToSql();
|
||||
|
||||
## ISelect.ToDelete 高级删除
|
||||
|
||||
IDelete 默认不支持导航对象,多表关联等。ISelect.ToDelete 可将查询转为 IDelete,以便使用导航对象删除数据,如下:
|
||||
`IDelete` 默认不支持导航对象,多表关联等。`ISelect.ToDelete` 可将查询转为 `IDelete`,以便使用导航对象删除数据,如下:
|
||||
|
||||
```csharp
|
||||
fsql.Select<T1>().Where(a => a.Options.xxx == 1).ToDelete().ExecuteAffrows();
|
||||
@@ -80,7 +83,7 @@ DELETE FROM `T1` WHERE id in (select a.id from T1 a left join Options b on b.t1i
|
||||
复杂删除使用此方法的好处:
|
||||
|
||||
- 删除前可预览测试数据,防止错误删除操作;
|
||||
- 支持复杂的删除操作,例如:ISelect 上使用 Limit(10) 删除附合条件的前 10 条记录;
|
||||
- 支持复杂的删除操作,例如:`ISelect` 上使用 `Limit(10)` 删除附合条件的前 10 条记录;
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
||||
Reference in New Issue
Block a user