update

28810
2020-10-16 21:47:05 +08:00
parent a987c2d9d3
commit 8f82d2b5fc
4 changed files with 34 additions and 7 deletions

7
API.md

@@ -176,8 +176,11 @@ DbContext 自身 = 完整事务BaseRepository 不一定有事务(可通过
| WithLock | \<this\> | Enum | SqlServer NoLock 等特有的设置 |
| ForUpdate | \<this\> | bool | 排他更新锁,对不同的数据库已作适配,详细说明见注释 |
| AsQueryable | IQueryable | | 将 ISelect 转换为 IQueryable此方法主要用于扩展比如abp IRepository GetAll() 接口方法需要返回 IQueryable 对象。注意IQueryable 方法污染较为严重,请尽量避免此转换 |
| ToTreeList() | List\<TEntity\> | 无 | 将父子关系的数据以 TreeList 的形式返回 |
| AsTreeCte() | ISelect | (up, pathSelector, level) | 递归查询父子关系表 |
| InsertInto | int | string, Lambda | 将查询转换为 INSERT INTO tableName SELECT ... FROM t 执行插入 |
| ToUpdate | IUpdate\<TENtity\> | 无 | 将查询转为更新对象 |
| ToDelete | IDelete\<TENtity\> | 无 | 将查询转为删除对象 |
| ToTreeList | List\<TEntity\> | 无 | 将父子关系的数据以 TreeList 的形式返回 |
| AsTreeCte | ISelect | (up, pathSelector, level) | 递归查询父子关系表 |
---

@@ -3,6 +3,7 @@
## v1.10.0-preview
- 增加 ISelect.InsertInto 将查询转换为 INSERT INTO t1 SELECT ... FROM t2 执行插入;
- 优化 WhereDynamicFilter 支持 string 比较大小 > < >= <=#479
- 优化 IncludeMany 筛选字段中未指定主键,并且 then.IncludeMany 继续向下,则自动附加查询主键;
- 优化 WhereDynamic 传入 DynamicFilterInfo 也能执行;

@@ -129,5 +129,8 @@ fsql.Select<VM_District_Parent>().WhereDynamicFilter(dyfilter).ToList();
| WithLock | \<this\> | Enum | SqlServer NoLock 等特有的设置 |
| ForUpdate | \<this\> | bool | 排他更新锁,对不同的数据库已作适配,详细说明见注释 |
| AsQueryable | IQueryable | | 将 ISelect 转换为 IQueryable此方法主要用于扩展比如abp IRepository GetAll() 接口方法需要返回 IQueryable 对象。注意IQueryable 方法污染较为严重,请尽量避免此转换 |
| ToTreeList() | List\<TEntity\> | 无 | 将父子关系的数据以 TreeList 的形式返回 |
| AsTreeCte() | ISelect | (up, pathSelector, level) | 递归查询父子关系表 |
| InsertInto | int | string, Lambda | 将查询转换为 INSERT INTO tableName SELECT ... FROM t 执行插入 |
| ToUpdate | IUpdate\<TENtity\> | 无 | 将查询转为更新对象 |
| ToDelete | IDelete\<TENtity\> | 无 | 将查询转为删除对象 |
| ToTreeList | List\<TEntity\> | 无 | 将父子关系的数据以 TreeList 的形式返回 |
| AsTreeCte | ISelect | (up, pathSelector, level) | 递归查询父子关系表 |

@@ -151,7 +151,27 @@ var t6 = fsql.Insert(items).IgnoreColumns(a => new { a.Title, a.CreateTime }).Ex
在使用 IgnoreColumns 的情况下,只有未被指定的列插入数据库;
## 7、MySql 特有功能 Insert Ignore Into
## 7、导入表数据
```csharp
int affrows = fsql.Select<Topic>()
.Limit(10)
.InsertInto(null, a => new Topic2
{
Title = a.Title
});
```
```sql
INSERT INTO `Topic`(`Title`, `Clicks`, `CreateTime`)
SELECT a.`Title`, 0, '0001-01-01 00:00:00'
FROM `2` a
limit 10
```
注意Clicks、CreateTime 因为没有指定,生成的 SQL 是设置好的默认值、或者 c# 的默认值
## 8、MySql 特有功能 Insert Ignore Into
```csharp
fsql.Insert<Topic>().MySqlIgnoreInto().AppendData(items).ExecuteAffrows();
@@ -160,11 +180,11 @@ fsql.Insert<Topic>().MySqlIgnoreInto().AppendData(items).ExecuteAffrows();
//(?Clicks5), (?Clicks6), (?Clicks7), (?Clicks8), (?Clicks9)
```
## 8、MySql 特有功能 On Duplicate Key Update
## 9、MySql 特有功能 On Duplicate Key Update
[请移步查看详情](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0%e6%88%96%e4%bf%ae%e6%94%b9#mysql-%E7%89%B9%E6%9C%89%E5%8A%9F%E8%83%BD-on-duplicate-key-update)
## 9、PostgreSQL 特有功能 On Conflict Do Update
## 10、PostgreSQL 特有功能 On Conflict Do Update
[请移步查看详情](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0%e6%88%96%e4%bf%ae%e6%94%b9#postgresql-%E7%89%B9%E6%9C%89%E5%8A%9F%E8%83%BD-on-conflict-do-update)