mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-18 14:20:55 +08:00
update
31
分表分库.md
31
分表分库.md
@@ -187,10 +187,35 @@ fsql.Change(DbEnum.db3).Select<T>();
|
|||||||
//以后所有 fsql.Select/Insert/Update/Delete 操作是 db3
|
//以后所有 fsql.Select/Insert/Update/Delete 操作是 db3
|
||||||
```
|
```
|
||||||
|
|
||||||
分库总结:
|
自动定向数据库配置:
|
||||||
|
|
||||||
- 跨库 事务不好处理,注意了;
|
```c#
|
||||||
- 跨库 查询不好处理,注意了;
|
//对 fsql.CRUD 方法名 + 实体类型 进行拦截,自动定向到对应的数据库,达到自动 Change 切换数据库目的
|
||||||
|
fsql.EntitySteering = (_, e) =>
|
||||||
|
{
|
||||||
|
switch (e.MethodName)
|
||||||
|
{
|
||||||
|
case "Select":
|
||||||
|
if (e.EntityType == typeof(T))
|
||||||
|
{
|
||||||
|
//查询 T 自动定向 db3
|
||||||
|
e.DBKey = DbEnum.db3;
|
||||||
|
}
|
||||||
|
else if (e.DBKey == DbEnum.db1)
|
||||||
|
{
|
||||||
|
//此处像不像读写分离?
|
||||||
|
var dbkeyIndex = new Random().Next(0, e.AvailableDBKeys.Length);
|
||||||
|
e.DBKey = e.AvailableDBKeys[dbkeyIndex]; //重新定向到其他 db
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Insert":
|
||||||
|
case "Update":
|
||||||
|
case "Delete":
|
||||||
|
case "InsertOrUpdate":
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
## 参考资料
|
## 参考资料
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user