From 8f82d2b5fcc7287512859cf48ca98f053e55a685 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Fri, 16 Oct 2020 21:47:05 +0800 Subject: [PATCH] update --- API.md | 7 +++++-- 更新日志.md | 1 + 查询.md | 7 +++++-- 添加.md | 26 +++++++++++++++++++++++--- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/API.md b/API.md index 844ce23..4738761 100644 --- a/API.md +++ b/API.md @@ -176,8 +176,11 @@ DbContext 自身 = 完整事务,BaseRepository 不一定有事务(可通过 | WithLock | \ | Enum | SqlServer NoLock 等特有的设置 | | ForUpdate | \ | bool | 排他更新锁,对不同的数据库已作适配,详细说明见注释 | | AsQueryable | IQueryable | | 将 ISelect 转换为 IQueryable,此方法主要用于扩展,比如:abp IRepository GetAll() 接口方法需要返回 IQueryable 对象。注意:IQueryable 方法污染较为严重,请尽量避免此转换 | -| ToTreeList() | List\ | 无 | 将父子关系的数据以 TreeList 的形式返回 | -| AsTreeCte() | ISelect | (up, pathSelector, level) | 递归查询父子关系表 | +| InsertInto | int | string, Lambda | 将查询转换为 INSERT INTO tableName SELECT ... FROM t 执行插入 | +| ToUpdate | IUpdate\ | 无 | 将查询转为更新对象 | +| ToDelete | IDelete\ | 无 | 将查询转为删除对象 | +| ToTreeList | List\ | 无 | 将父子关系的数据以 TreeList 的形式返回 | +| AsTreeCte | ISelect | (up, pathSelector, level) | 递归查询父子关系表 | --- diff --git a/更新日志.md b/更新日志.md index 0b977cc..922a434 100644 --- a/更新日志.md +++ b/更新日志.md @@ -3,6 +3,7 @@ ## v1.10.0-preview +- 增加 ISelect.InsertInto 将查询转换为 INSERT INTO t1 SELECT ... FROM t2 执行插入; - 优化 WhereDynamicFilter 支持 string 比较大小 > < >= <=;#479 - 优化 IncludeMany 筛选字段中未指定主键,并且 then.IncludeMany 继续向下,则自动附加查询主键; - 优化 WhereDynamic 传入 DynamicFilterInfo 也能执行; diff --git a/查询.md b/查询.md index e581093..74621da 100644 --- a/查询.md +++ b/查询.md @@ -129,5 +129,8 @@ fsql.Select().WhereDynamicFilter(dyfilter).ToList(); | WithLock | \ | Enum | SqlServer NoLock 等特有的设置 | | ForUpdate | \ | bool | 排他更新锁,对不同的数据库已作适配,详细说明见注释 | | AsQueryable | IQueryable | | 将 ISelect 转换为 IQueryable,此方法主要用于扩展,比如:abp IRepository GetAll() 接口方法需要返回 IQueryable 对象。注意:IQueryable 方法污染较为严重,请尽量避免此转换 | -| ToTreeList() | List\ | 无 | 将父子关系的数据以 TreeList 的形式返回 | -| AsTreeCte() | ISelect | (up, pathSelector, level) | 递归查询父子关系表 | \ No newline at end of file +| InsertInto | int | string, Lambda | 将查询转换为 INSERT INTO tableName SELECT ... FROM t 执行插入 | +| ToUpdate | IUpdate\ | 无 | 将查询转为更新对象 | +| ToDelete | IDelete\ | 无 | 将查询转为删除对象 | +| ToTreeList | List\ | 无 | 将父子关系的数据以 TreeList 的形式返回 | +| AsTreeCte | ISelect | (up, pathSelector, level) | 递归查询父子关系表 | \ No newline at end of file diff --git a/添加.md b/添加.md index f3ba563..0ed77d6 100644 --- a/添加.md +++ b/添加.md @@ -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() + .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().MySqlIgnoreInto().AppendData(items).ExecuteAffrows(); @@ -160,11 +180,11 @@ fsql.Insert().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)