有一个关于SAAS分库的数据库对象注入问题。 返回

SqlSugar 沟通中
1 421

一个主库,存储了租户信息,以及对应的数据库连接参数。

多个子库,存储各自业务数据。


我设计了一个数据库对象提供器,叫做  DbProvider。后期注入到仓储层代码里。

其内部有一个属性public SqlSugarProvider BizDb{  get=>? }

作用是

1、根据请求token获取租户ID。

2、根据租户ID,从redis或者数据库中读取该租户的连接参数。

3、把连接参数写入ISqlSugarClient,并通过GetConnection获取连接对象,然后返回。


现在问题出在第2点。

想要实现第2点,那DbProvider就需要注入租户服务,才可以根据租户ID获取连接参数。

但是租户服务本身也要连接数据库,它用到  DbProvider  里的MasterDb连接。


这就导致会交叉引用。请问是我的设计错误,还是有什么解决办法?

热忱回答1

  • fate sta fate sta VIP0
    2026/3/17

    文档:写的很清楚了按SAAS分库中SqlSugarClient的用法写就行了

    0 回复