mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-03 23:10:54 +08:00
update
18
修改.md
18
修改.md
@@ -143,6 +143,24 @@ var t10 = update.SetRaw("Title = @title", new { title = "新标题" }).Where("Id
|
||||
|
||||
> 适用 SetSource 更新,每次更新 version 的值都会增加 1
|
||||
|
||||
## ISelect.ToUpdate 高级更新
|
||||
|
||||
默认 IUpdate 不支持导航对象,多表关联等。ISelect.ToUpdate 可将查询转为删除对象,以便支持导航对象或其他查询功能删除数据,如下:
|
||||
|
||||
```csharp
|
||||
fsql.Select<T1>().Where(a => a.Options.xxx == 1).ToUpdate().Set(a => a.Title, "111").ExecuteAffrows();
|
||||
```
|
||||
注意:此方法不是将数据查询到内存循环删除,上面的代码产生如下 SQL 执行:
|
||||
|
||||
```sql
|
||||
UPDATE `T1` SET Title = '111' WHERE id in (select a.id from T1 a left join Options b on b.t1id = a.id where b.xxx = 1)
|
||||
```
|
||||
|
||||
复杂更新使用该方案的好处:
|
||||
|
||||
- 更新前可预览测试数据,防止错误更新操作;
|
||||
- 支持更加复杂的更新操作(IUpdate 默认只支持简单的操作),甚至在 ISelect 上使用 Limit(10) 将只更新附合条件的前 10条记录;
|
||||
|
||||
## 参考资料
|
||||
|
||||
- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1)
|
||||
|
||||
18
删除.md
18
删除.md
@@ -73,6 +73,24 @@ var t8 = fsql.Delete<Topic>().Where(items).ToSql();
|
||||
//DELETE FROM `tb_topic` WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10))
|
||||
```
|
||||
|
||||
## ISelect.ToDelete 高级删除
|
||||
|
||||
默认 IDelete 不支持导航对象,多表关联等。ISelect.ToDelete 可将查询转为删除对象,以便支持导航对象或其他查询功能删除数据,如下:
|
||||
|
||||
```csharp
|
||||
fsql.Select<T1>().Where(a => a.Options.xxx == 1).ToDelete().ExecuteAffrows();
|
||||
```
|
||||
注意:此方法不是将数据查询到内存循环删除,上面的代码产生如下 SQL 执行:
|
||||
|
||||
```sql
|
||||
DELETE FROM `T1` WHERE id in (select a.id from T1 a left join Options b on b.t1id = a.id where b.xxx = 1)
|
||||
```
|
||||
|
||||
复杂删除使用该方案的好处:
|
||||
|
||||
- 删除前可预览测试数据,防止错误删除操作;
|
||||
- 支持更加复杂的删除操作(IDelete 默认只支持简单的操作),甚至在 ISelect 上使用 Limit(10) 将只删除附合条件的前 10条记录;
|
||||
|
||||
## 参考资料
|
||||
|
||||
- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1)
|
||||
|
||||
5
更新日志.md
5
更新日志.md
@@ -1,6 +1,11 @@
|
||||
|
||||
完整版本:年数-月-日-当日版本号,FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。
|
||||
|
||||
## v0.11.4
|
||||
|
||||
- 增加 ISelect ToDelete/ToUpdate 方法,实现更复杂的删除/更新操作;
|
||||
- 移除 IUpdate/IDelete WhereExists 方法;
|
||||
|
||||
## v0.11.3
|
||||
|
||||
- 增加 FreeSql.DbContext DbSet Remove 可根据 lambda 条件删除数据的方法;
|
||||
|
||||
Reference in New Issue
Block a user