update

2881099
2022-08-11 15:56:24 +08:00
parent f1956f0d45
commit 7ef601be43

@@ -187,10 +187,35 @@ fsql.Change(DbEnum.db3).Select<T>();
//以后所有 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;
}
};
```
## 参考资料