mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-03 23:10:54 +08:00
update
18
FreeSql入门.md
18
FreeSql入门.md
@@ -2,15 +2,15 @@ FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O
|
||||
|
||||
## 特性
|
||||
|
||||
- [x] CodeFirst 迁移。
|
||||
- [x] DbFirst 从数据库导入实体类,支持三种模板生成器。
|
||||
- [x] 采用 ExpressionTree 高性能读取数据。
|
||||
- [x] 类型映射深入支持,比如pgsql的数组类型,堪称匠心制作。
|
||||
- [x] 支持丰富的表达式函数。
|
||||
- [x] 支持导航属性查询,和延时加载。
|
||||
- [x] 支持同步/异步数据库操作方法,丰富多彩的链式查询方法。
|
||||
- [x] 支持事务。
|
||||
- [x] 支持多种数据库,MySql/SqlServer/PostgreSQL/Oracle/Sqlite。
|
||||
- [x] 支持 CodeFirst 迁移;
|
||||
- [x] 支持 DbFirst 从数据库导入实体类,支持三种模板生成器;
|
||||
- [x] 采用 ExpressionTree 高性能读取数据;
|
||||
- [x] 支持深入的类型映射,比如pgsql的数组类型,堪称匠心制作;
|
||||
- [x] 支持丰富的表达式函数;
|
||||
- [x] 支持导航属性查询,和延时加载;
|
||||
- [x] 支持同步/异步数据库操作方法,丰富多彩的链式查询方法;
|
||||
- [x] 支持读写分离、分表分库,租户设计;
|
||||
- [x] 支持多种数据库,MySql/SqlServer/PostgreSQL/Oracle/Sqlite;
|
||||
|
||||
## 模型
|
||||
|
||||
|
||||
3
Home.md
3
Home.md
@@ -36,6 +36,7 @@ FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O
|
||||
* [缓存](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)
|
||||
* [仓储层Repository](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
* [CodeFirst](https://github.com/2881099/FreeSql/wiki/CodeFirst)
|
||||
* [实体特性](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e5%ae%9e%e4%bd%93%e7%89%b9%e6%80%a7)
|
||||
* [外部配置实体](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)
|
||||
@@ -49,6 +50,8 @@ FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O
|
||||
* [其他](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/tenant)
|
||||
* [性能](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
* API参考
|
||||
|
||||
|
||||
@@ -100,4 +100,5 @@ 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)
|
||||
- [《分区、分表、分库》](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%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
73
Tenant.md
Normal file
73
Tenant.md
Normal file
@@ -0,0 +1,73 @@
|
||||
FreeSql 提供了稳定和功能强大的基础,比较适合租户有功能有[《分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)。
|
||||
|
||||
### 什么是多租户
|
||||
|
||||
维基百科:“软件多租户是指一种软件架构,在这种软件架构中,软件的一个实例运行在服务器上并且为多个租户服务”。一个租户是一组共享该软件实例特定权限的用户。有了多租户架构,软件应用被设计成为每个租户提供一个 专用的实例包括该实例的数据的共享,还可以共享配置,用户管理,租户自己的功能和非功能属性。多租户和多实例架构相比,多租户分离了代表不同的租户操作的多个实例。
|
||||
|
||||
多租户用于创建Saas(Software as-a service)应用(云处理)。
|
||||
|
||||
### 方案一:按租户字段区分
|
||||
|
||||
FreeSql.Repository 现实了 filter(过滤与验证)功能,如:
|
||||
|
||||
```csharp
|
||||
var topicRepos = fsql.GetGuidRepository<Topic>(t => t.TerantId == 1);
|
||||
```
|
||||
|
||||
使用 topicRepos 对象进行 CURD 方法:
|
||||
|
||||
* 在查询/修改/删除时附加此条件,从而达到不会修改 TerantId != 1 的数据;
|
||||
* 在添加时,使用表达式验证数据的合法性,若不合法则抛出异常;
|
||||
|
||||
利用这个功能,我们可以很方便的实现数据分区,达到租户的目的。
|
||||
|
||||
### 方案二:按租户分表
|
||||
|
||||
FreeSql.Repository 现实了 分表功能,如:
|
||||
|
||||
```csharp
|
||||
var tenantId = 1;
|
||||
var reposTopic = orm.GetGuidRepository<Topic>(null, oldname => $"{oldname}{tenantId}");
|
||||
```
|
||||
|
||||
上面我们得到一个仓储按租户分表,使用它 CURD 最终会操作 Topic_1 表。
|
||||
|
||||
> 更多说明参考:[《FreeSql.Repository 仓储》](https://github.com/2881099/FreeSql/wiki/Repository)
|
||||
|
||||
### 方案三:按租户分库
|
||||
|
||||
与方案二相同,只是表存储的位置不同,请查看 [《FreeSql.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)。
|
||||
|
||||
### 多表查询
|
||||
|
||||
分表下的租户也支持多表查询,得益于 FreeSql 提供的优良基础。这部份仍然在 FreeSql.Repository 扩展库中实现的。
|
||||
|
||||
```csharp
|
||||
var tenantId = 1;
|
||||
var reposTopic = orm.GetGuidRepository<Topic>(null, oldname => $"{oldname}{tenantId}");
|
||||
var reposType = orm.GetGuidRepository<TopicType>(null, oldname => $"{oldname}{tenantId}");
|
||||
|
||||
//联表查询也支持
|
||||
reposTopic.Select
|
||||
.FromRepository(reposType) //合并两个仓储的设置
|
||||
.LeftJoin<TopicType>((a, b) => a.TypeId == b.Id)
|
||||
.ToList();
|
||||
```
|
||||
|
||||
上述代码的使用,将两个设置好的租户仓储合并起来查询,查询租户1下的 topic + topictype 数据,执行的 SQL语句:
|
||||
|
||||
```sql
|
||||
SELECT ...
|
||||
FROM "Topic_1" a
|
||||
LEFT JOIN "TopicType_1" b ON a."TypeId" = b."Id"
|
||||
```
|
||||
|
||||
## 参考资料
|
||||
|
||||
- [《读写分离》](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)
|
||||
@@ -37,6 +37,7 @@
|
||||
* [事务](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/tenant)
|
||||
* [性能](https://github.com/2881099/FreeSql/wiki/%e6%80%a7%e8%83%bd)
|
||||
* API参考
|
||||
|
||||
|
||||
1
事务.md
1
事务.md
@@ -55,6 +55,7 @@ fsql.Transaction(() => {
|
||||
|
||||
这样一来,我们就有了一个非常好的借口将事务对象临时存储在线程上,使用时不必层层传递事务对象。
|
||||
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
- [《读写分离》](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)
|
||||
|
||||
1
分区分表.md
1
分区分表.md
@@ -50,6 +50,7 @@ var logRepository = fsql.GetGuidRepository<Log>(null, oldname => $"{oldname}_{Da
|
||||
|
||||
注意:不能使用 CodeFirst 迁移分表,开发环境时仍然可以迁移 Log 表。
|
||||
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
- [《读写分离》](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)
|
||||
|
||||
@@ -58,4 +58,5 @@ var groupby = fsql.Select<Topic>()
|
||||
- [《优化之:延时加载》](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/Tenant)
|
||||
1
分页查询.md
1
分页查询.md
@@ -52,4 +52,5 @@ var sql = select.Page(1, 20).ToSql();
|
||||
- [《优化之:贪婪加载》](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/Tenant)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
|
||||
1
删除.md
1
删除.md
@@ -72,6 +72,7 @@ var t8 = fsql.Delete<Topic>().Where(items).ToSql();
|
||||
- [《学习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/Tenant)
|
||||
|
||||
## API
|
||||
|
||||
|
||||
@@ -65,4 +65,5 @@ sql = select.Where(a => a.Type.Parent.Name == "tparent").ToSql();
|
||||
- [《优化之:贪婪加载》](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/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
3
单表查询.md
3
单表查询.md
@@ -44,4 +44,5 @@ sql = select.Where(a => new []{1,2,3}.Contains(a.Id)).ToSql();
|
||||
- [《优化之:贪婪加载》](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/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
3
多表查询.md
3
多表查询.md
@@ -150,4 +150,5 @@ sql2222 = select.Where(a =>
|
||||
- [《优化之:贪婪加载》](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/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
1
安装.md
1
安装.md
@@ -35,6 +35,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/Tenant)
|
||||
- [《利用导航属性查询》](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
@@ -133,6 +133,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/Tenant)
|
||||
- [《利用导航属性查询》](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)
|
||||
|
||||
17
更新日志.md
17
更新日志.md
@@ -1,4 +1,21 @@
|
||||
|
||||
## v0.1.13
|
||||
|
||||
- 修改 连接池内部 Ping Timeout 值暂定 1秒;
|
||||
- 优化 初始化时若数据库超时,则放弃预热;
|
||||
- FreeSql.Repository 下增加 ISelect.FromRepository 扩展方法;比如分表实现租户:
|
||||
```csharp
|
||||
var tenantId = 1;
|
||||
var reposTopic = orm.GetGuidRepository<Topic>(null, oldname => $"{oldname}{tenantId}");
|
||||
var reposType = orm.GetGuidRepository<TopicType>(null, oldname => $"{oldname}{tenantId}");
|
||||
|
||||
//联表查询也支持
|
||||
reposTopic.Select
|
||||
.FromRepository(reposType) //合并两个仓储的设置
|
||||
.LeftJoin<TopicType>((a, b) => a.TypeId == b.Id)
|
||||
.ToList();
|
||||
```
|
||||
|
||||
## v0.1.12
|
||||
|
||||
- 升级 nuget 依赖包;
|
||||
|
||||
1
查询.md
1
查询.md
@@ -14,6 +14,7 @@ FreeSql在查询数据下足了功能,链式查询语法、多表查询、表
|
||||
- [《读写分离》](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)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
|
||||
## API
|
||||
|
||||
|
||||
1
添加.md
1
添加.md
@@ -77,6 +77,7 @@ var t6 = insert.AppendData(items).IgnoreColumns(a => new { a.Title, a.CreateTime
|
||||
- [《学习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)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
|
||||
## API
|
||||
|
||||
|
||||
1
缓存.md
1
缓存.md
@@ -38,6 +38,7 @@ Assert.Equal(result1.Count, result1.Count);
|
||||
- [《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)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
|
||||
## API
|
||||
| 方法 | 返回值 | 参数 | 描述 |
|
||||
|
||||
3
读写分离.md
3
读写分离.md
@@ -39,4 +39,5 @@ select.Master().WhereId(a => a.Id == 1).ToOne(); //强制读【主库】
|
||||
- [《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/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
@@ -129,4 +129,5 @@ List<dynamic> t9 = fsql.Ado.Query<dynamic>("select * from song");
|
||||
- [《优化之:贪婪加载》](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/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《分区、分表、分库》](https://github.com/2881099/FreeSql/wiki/%e5%88%86%e5%8c%ba%e5%88%86%e8%a1%a8)
|
||||
- [《租户》](https://github.com/2881099/FreeSql/wiki/Tenant)
|
||||
Reference in New Issue
Block a user