mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-08 09:20:55 +08:00
update
@@ -58,6 +58,18 @@ var topicRepository = fsql.GetGuidRepository<Topic>(a => a.UserId == 1);
|
||||
* 在查询/修改/删除时附加此条件,从而达到不会修改其他用户的数据;
|
||||
* 在添加时,使用表达式验证数据的合法性,若不合法则抛出异常;
|
||||
|
||||
## 分表与分库
|
||||
|
||||
FreeSql 提供 AsTable 分表的基础方法,GuidRepository 作为分存式仓储将实现了分表与分库(不支持跨服务器分库)的封装。
|
||||
|
||||
```csharp
|
||||
var logRepository = fsql.GetGuidRepository<Log>(null, oldname => $"{oldname}_{DateTime.Now.ToString("YYYYMM")}");
|
||||
```
|
||||
|
||||
上面我们得到一个日志仓储按年月分表,使用它 CURD 最终会操作 Log_201903 表。
|
||||
|
||||
注意:不能使用 CodeFirst 迁移分表,开发环境时仍然可以迁移 Log 表。
|
||||
|
||||
## 兼容问题
|
||||
|
||||
FreeSql 支持五种数据库,分别为 MySql/SqlServer/PostgreSQL/Oracle/Sqlite,虽然他们都为关系型数据库,但各自有着独特的技术亮点,有许多亮点值得我们使用;
|
||||
@@ -88,4 +100,4 @@ Task<TEntity> InsertAsync(TEntity entity);
|
||||
- [《学习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)
|
||||
- [《仓储层Repository》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
@@ -36,6 +36,7 @@
|
||||
* [其他](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0#%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0%e5%85%a8%e8%a7%88)
|
||||
* [事务](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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
* [性能](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
* API参考
|
||||
|
||||
|
||||
4
事务.md
4
事务.md
@@ -56,8 +56,10 @@ fsql.Transaction(() => {
|
||||
这样一来,我们就有了一个非常好的借口将事务对象临时存储在线程上,使用时不必层层传递事务对象。
|
||||
|
||||
- [《读写分离》](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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《优化之:缓存之路》](https://github.com/2881099/FreeSql/wiki/%e7%bc%93%e5%ad%98)
|
||||
- [《仓储层Repository》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
- [《学习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/%e4%bf%ae%e6%94%b9)
|
||||
|
||||
19
分区分表.md
19
分区分表.md
@@ -38,3 +38,22 @@ create table fenbiao_2018 partition of fenbiao for values in ('2018');
|
||||
|
||||
数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
|
||||
|
||||
## FreeSql.Repository 之分表
|
||||
|
||||
FreeSql 提供 AsTable 分表的基础方法,GuidRepository 作为分存式仓储将实现了分表与分库(不支持跨服务器分库)的封装。
|
||||
|
||||
```csharp
|
||||
var logRepository = fsql.GetGuidRepository<Log>(null, oldname => $"{oldname}_{DateTime.Now.ToString("YYYYMM")}");
|
||||
```
|
||||
|
||||
上面我们得到一个日志仓储按年月分表,使用它 CURD 最终会操作 Log_201903 表。
|
||||
|
||||
注意:不能使用 CodeFirst 迁移分表,开发环境时仍然可以迁移 Log 表。
|
||||
|
||||
- [《读写分离》](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)
|
||||
- [《仓储层Repository》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
- [《学习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)
|
||||
3
分页查询.md
3
分页查询.md
@@ -51,4 +51,5 @@ 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)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
|
||||
@@ -64,4 +64,5 @@ 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)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
3
单表查询.md
3
单表查询.md
@@ -43,4 +43,5 @@ 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)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
3
多表查询.md
3
多表查询.md
@@ -149,4 +149,5 @@ 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)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
1
安装.md
1
安装.md
@@ -34,6 +34,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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《利用导航属性查询》](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)
|
||||
|
||||
1
性能.md
1
性能.md
@@ -132,6 +132,7 @@ public void QueryList() {
|
||||
|
||||
- [《数据库事务》](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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《利用导航属性查询》](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)
|
||||
- [《仓储层Repository》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
|
||||
5
更新日志.md
5
更新日志.md
@@ -1,4 +1,9 @@
|
||||
|
||||
## v0.1.11
|
||||
|
||||
- FreeSql ISelect/IUpdate/IInsert/IDelete 增加 AsTable 方法,实现分表;
|
||||
- FreeSql.Repository 之 GuidRepository 实现分表扩展,原因系 Guid 适合作分布式存储;
|
||||
|
||||
## v0.1.10
|
||||
|
||||
- 修复 FreeSql.Repository GuidRepository/GetGuidRepository 缓存 bug;
|
||||
|
||||
1
查询.md
1
查询.md
@@ -13,6 +13,7 @@ FreeSql在查询数据下足了功能,链式查询语法、多表查询、表
|
||||
- [《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)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
|
||||
## API
|
||||
|
||||
|
||||
1
添加.md
1
添加.md
@@ -76,6 +76,7 @@ var t6 = insert.AppendData(items).IgnoreColumns(a => new { a.Title, a.CreateTime
|
||||
- [《学习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)
|
||||
- [《仓储层Repository》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
|
||||
## API
|
||||
|
||||
|
||||
1
缓存.md
1
缓存.md
@@ -37,6 +37,7 @@ Assert.Equal(result1.Count, result1.Count);
|
||||
- [《DbFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/DbFirst)
|
||||
- [《DbFirst模式之一:使用模板生成器》](https://github.com/2881099/FreeSql/wiki/DbFirst#%e7%94%9f%e6%88%90%e5%99%a8)
|
||||
- [《使用读写分离》](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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
|
||||
## API
|
||||
| 方法 | 返回值 | 参数 | 描述 |
|
||||
|
||||
3
读写分离.md
3
读写分离.md
@@ -38,4 +38,5 @@ select.Master().WhereId(a => a.Id == 1).ToOne(); //强制读【主库】
|
||||
- [《CodeFirst模式之四:类型映射》](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84)
|
||||
- [《DbFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/DbFirst)
|
||||
- [《DbFirst模式之一:使用模板生成器》](https://github.com/2881099/FreeSql/wiki/DbFirst#%e7%94%9f%e6%88%90%e5%99%a8)
|
||||
- [《优化之:缓存之路》](https://github.com/2881099/FreeSql/wiki/%e7%bc%93%e5%ad%98)
|
||||
- [《优化之:缓存之路》](https://github.com/2881099/FreeSql/wiki/%e7%bc%93%e5%ad%98)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
@@ -128,4 +128,5 @@ List<dynamic> t9 = fsql.Ado.Query<dynamic>("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)
|
||||
- [《性能》](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
Reference in New Issue
Block a user