update

28810
2020-05-21 02:04:07 +08:00
parent 0b79c601b6
commit d23e5435d8
2 changed files with 22 additions and 0 deletions

@@ -10,6 +10,7 @@
- 修复 ISelect.ToDataTable(lambda) 未使用 AsProperty 返回数据;
- 修复 IUpdate.Set(a => a.xx = null) 表达式解析 bug#311
- 修复 Enum 类型无元素时的错误;
- 增加 IFreeSql.InsertOrUpdate 方法 [wiki](https://github.com/dotnetcore/FreeSql/wiki/%E6%B7%BB%E5%8A%A0%E6%88%96%E4%BF%AE%E6%94%B9)
- 增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互)[wiki](https://github.com/dotnetcore/FreeSql/wiki/%E6%9F%A5%E8%AF%A2)
- 增加 WhereCascade/GlobalFilter 表达式子查询的支持;
- 增加 \[Description\] 元数据注释,优先级低于 c# 代码注释;

@@ -1,5 +1,26 @@
FreeSql 提供了多种插入或更新方法v0.11.11 之前主要使用 FreeSql.Repository/FreeSql.DbContext 库提供的方法实现。
## IFreeSql.InsertOrUpdate
IFreeSql 定义了 InsertOrUpdate 方法实现添加或修改的功能,利用数据库特性:
| Database | Features |
| -- | -- |
| MySql | on duplicate key update |
| PostgreSQL | on conflict do update |
| SqlServer | merge into |
| Oracle | merge into |
| Sqlite | replace into |
| Dameng | merge into |
注意FreeSql.Repository 通用仓储也有 InsertOrUpdate 方法,它们的机制不一样。
```csharp
fsql.InsertOrUpdate<T>()
.SetSource(items) //需要操作的数据
.ExecuteAffrows();
```
## FreeSql.Repository 之 InsertOrUpdate
此方法与 FreeSql.DbContext AddOrUpdate 方法功能一样。