From e84cb37b25424fea4cac197046047d2c9d57cea3 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sat, 26 Jan 2019 02:43:53 +0800 Subject: [PATCH] update --- FreeSql入门.md | 2 +- 事务.md | 17 ++++++++++++----- 修改.md | 1 + 分组聚合查询.md | 1 + 分页查询.md | 1 + 删除.md | 1 + 利用导航属性.md | 1 + 单表查询.md | 1 + 多表查询.md | 1 + 安装.md | 1 + 性能.md | 8 ++++++++ 查询.md | 2 ++ 添加.md | 1 + 读写分离.md | 2 ++ 返回查询的数据.md | 1 + 15 files changed, 35 insertions(+), 6 deletions(-) diff --git a/FreeSql入门.md b/FreeSql入门.md index d10293d..02ad10d 100644 --- a/FreeSql入门.md +++ b/FreeSql入门.md @@ -94,4 +94,4 @@ fsql.Delete() - [《学习FreeSql之一:添加数据》](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0) - [《学习FreeSql之二:删除数据》](https://github.com/2881099/FreeSql/wiki/%e5%88%a0%e9%99%a4) - [《学习FreeSql之三:修改数据》](https://github.com/2881099/FreeSql/wiki/%e4%bf%ae%e6%94%b9) -- [《学习FreeSql之四:查询数据》](https://github.com/2881099/FreeSql/wiki/%e6%9f%a5%e8%af%a2) \ No newline at end of file +- [《学习FreeSql之四:查询数据》](https://github.com/2881099/FreeSql/wiki/%e6%9f%a5%e8%af%a2) diff --git a/事务.md b/事务.md index b70c96f..50b7b5c 100644 --- a/事务.md +++ b/事务.md @@ -32,7 +32,7 @@ fsql.Transaction(() => { //抛出异常,回滚事务,事务退出 //用户余额的扣除将不生效 } - + //程序执行在此处,说明都扣成功了,事务完成并提交 }); ``` @@ -43,14 +43,21 @@ fsql.Transaction(() => { 2、在事务代码过程中,不可使用异步方法,包括FreeSql提供的数据库库异步方法,否则线程将会切换事务不生效; -3、fsql.Transaction 有防止死锁机制,60秒事务未结束的,将会被其他事务提交(不是回滚),60秒可在方法参数中设置; +3、fsql.Transaction 有防止死锁机制,60秒事务未结束的,将会被其他线程强行提交(不是回滚),可能造成不完整的事务,但仔细一想60秒还没完成的事务是什么原因呢?如果嫌60秒太少了可以在重载方法的参数中设置; ## 事务为什么不适合异步方法 -事务的操作会占用资源,导致其他地方的读写被阻塞,使用原则应该是尽快关闭。 +事务的操作会占用资源,导致其他地方的读写被阻塞,使用原则应该是尽快关闭释放资源。 -然而异步机制是排队的过程,事务体内的异步方法调试任务排队执行,如果此时任务队列很长,事务的关闭时间将会延长,不仅会导致越来越多的读写操作被阻塞,而且它们还占用着任务池资源,在极端条件下这简直是一个死循环。 +然而异步机制是排队的过程,事务体内的异步方法被调度排队执行,如果此时任务队列很长,事务的关闭时间将会延长,不仅会导致越来越多的读写操作被阻塞,而且它们还占用着任务池资源,在极端条件下这简直是一个死循环。 > 所以请不要在事务体中执行异步方法 -这样一来,我们就有了一个非常好的借口将事务对象临时存储在线程上,使用时不必层层传递事务对象。 \ No newline at end of file +这样一来,我们就有了一个非常好的借口将事务对象临时存储在线程上,使用时不必层层传递事务对象。 + +- [《读写分离》](https://github.com/2881099/FreeSql/wiki/%e8%af%bb%e5%86%99%e5%88%86%e7%a6%bb) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) +- [《优化之:缓存之路》](https://github.com/2881099/FreeSql/wiki/%e7%bc%93%e5%ad%98) +- [《学习FreeSql之一:添加数据》](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0) +- [《学习FreeSql之二:删除数据》](https://github.com/2881099/FreeSql/wiki/%e5%88%a0%e9%99%a4) +- [《学习FreeSql之三:修改数据》](https://github.com/2881099/FreeSql/wiki/%e4%bf%ae%e6%94%b9) \ No newline at end of file diff --git a/修改.md b/修改.md index efa67d6..feec244 100644 --- a/修改.md +++ b/修改.md @@ -117,6 +117,7 @@ var t10 = update.SetRaw("Title = {0}", "新标题").Where("Id = {0}", 1).ToSql() ## 参考资料 +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) - [《学习FreeSql之一:添加数据》](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0) - [《学习FreeSql之二:删除数据》](https://github.com/2881099/FreeSql/wiki/%e5%88%a0%e9%99%a4) - [《学习FreeSql之三:查询数据》](https://github.com/2881099/FreeSql/wiki/%e6%9f%a5%e8%af%a2) diff --git a/分组聚合查询.md b/分组聚合查询.md index 65c22c6..c3b626c 100644 --- a/分组聚合查询.md +++ b/分组聚合查询.md @@ -57,3 +57,4 @@ var groupby = fsql.Select() - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file diff --git a/分页查询.md b/分页查询.md index be5cd00..b2bb5d2 100644 --- a/分页查询.md +++ b/分页查询.md @@ -50,3 +50,4 @@ var sql = select.Page(1, 20).ToSql(); - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file diff --git a/删除.md b/删除.md index 4145d26..ad5bb33 100644 --- a/删除.md +++ b/删除.md @@ -67,6 +67,7 @@ var t8 = fsql.Delete().Where(items).ToSql(); ## 参考资料 +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) - [《学习FreeSql之一:添加数据》](https://github.com/2881099/FreeSql/wiki/%e6%b7%bb%e5%8a%a0) - [《学习FreeSql之二:修改数据》](https://github.com/2881099/FreeSql/wiki/%e4%bf%ae%e6%94%b9) - [《学习FreeSql之三:查询数据》](https://github.com/2881099/FreeSql/wiki/%e6%9f%a5%e8%af%a2) diff --git a/利用导航属性.md b/利用导航属性.md index 0cda077..b4393c3 100644 --- a/利用导航属性.md +++ b/利用导航属性.md @@ -63,3 +63,4 @@ sql = select.Where(a => a.Type.Parent.Name == "tparent").ToSql(); - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file diff --git a/单表查询.md b/单表查询.md index 22b3d65..c0593cb 100644 --- a/单表查询.md +++ b/单表查询.md @@ -42,3 +42,4 @@ sql = select.Where(a => new []{1,2,3}.Contains(a.Id)).ToSql(); - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file diff --git a/多表查询.md b/多表查询.md index 74728d5..31b20fd 100644 --- a/多表查询.md +++ b/多表查询.md @@ -148,3 +148,4 @@ sql2222 = select.Where(a => - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file diff --git a/安装.md b/安装.md index c49aae5..42aa0b1 100644 --- a/安装.md +++ b/安装.md @@ -31,6 +31,7 @@ FreeSql 除了支持基本的增删查改功能外,还支持基于现有数据 #### 高级 +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) - [《使用读写分离》](https://github.com/2881099/FreeSql/wiki/%e8%af%bb%e5%86%99%e5%88%86%e7%a6%bb) - [《利用导航属性查询》](https://github.com/2881099/FreeSql/wiki/%e5%88%a9%e7%94%a8%e5%af%bc%e8%88%aa%e5%b1%9e%e6%80%a7) - [《获取查询返回的数据》](https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%9f%a5%e8%af%a2%e7%9a%84%e6%95%b0%e6%8d%ae) diff --git a/性能.md b/性能.md index ad9594d..c868eaf 100644 --- a/性能.md +++ b/性能.md @@ -130,3 +130,11 @@ public void QueryList() { > 更多测试源码:FreeSql/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) +- [《使用读写分离》](https://github.com/2881099/FreeSql/wiki/%e8%af%bb%e5%86%99%e5%88%86%e7%a6%bb) +- [《利用导航属性查询》](https://github.com/2881099/FreeSql/wiki/%e5%88%a9%e7%94%a8%e5%af%bc%e8%88%aa%e5%b1%9e%e6%80%a7) +- [《获取查询返回的数据》](https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%9f%a5%e8%af%a2%e7%9a%84%e6%95%b0%e6%8d%ae) +- [《优化之:缓存之路》](https://github.com/2881099/FreeSql/wiki/%e7%bc%93%e5%ad%98) +- [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) +- [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) +- [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) \ No newline at end of file diff --git a/查询.md b/查询.md index a854515..e410234 100644 --- a/查询.md +++ b/查询.md @@ -10,6 +10,8 @@ FreeSql在查询数据下足了功能,链式查询语法、多表查询、表 - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《读写分离》](https://github.com/2881099/FreeSql/wiki/%e8%af%bb%e5%86%99%e5%88%86%e7%a6%bb) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) ## API diff --git a/添加.md b/添加.md index 7e8074d..3b06434 100644 --- a/添加.md +++ b/添加.md @@ -71,6 +71,7 @@ var t6 = insert.AppendData(items).IgnoreColumns(a => new { a.Title, a.CreateTime ## 参考资料 +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) - [《学习FreeSql之一:删除数据》](https://github.com/2881099/FreeSql/wiki/%e5%88%a0%e9%99%a4) - [《学习FreeSql之二:修改数据》](https://github.com/2881099/FreeSql/wiki/%e4%bf%ae%e6%94%b9) - [《学习FreeSql之三:查询数据》](https://github.com/2881099/FreeSql/wiki/%e6%9f%a5%e8%af%a2) diff --git a/读写分离.md b/读写分离.md index ab334cf..3d91fba 100644 --- a/读写分离.md +++ b/读写分离.md @@ -29,6 +29,8 @@ select.Master().WhereId(a => a.Id == 1).ToOne(); //强制读【主库】 ## 参考资料 +- [《数据库事务》](https://github.com/2881099/FreeSql/wiki/%e4%ba%8b%e5%8a%a1) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) - [《CodeFirst模式之一:实体特性》](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e5%ae%9e%e4%bd%93%e7%89%b9%e6%80%a7) - [《CodeFirst模式之二:外部配置实体》](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e5%a4%96%e9%83%a8%e9%85%8d%e7%bd%ae%e5%ae%9e%e4%bd%93) diff --git a/返回查询的数据.md b/返回查询的数据.md index 6b4a0c9..6df75d3 100644 --- a/返回查询的数据.md +++ b/返回查询的数据.md @@ -127,3 +127,4 @@ List t9 = fsql.Ado.Query("select * from song"); - [《优化之:延时加载》](https://github.com/2881099/FreeSql/wiki/%e5%bb%b6%e6%97%b6%e5%8a%a0%e8%bd%bd) - [《优化之:贪婪加载》](https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd) - [《Expression 表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0) +- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd) \ No newline at end of file