咨询一个使用ChangeDatabase和GetConnectionScope哪种切换更好 返回

SqlSugar 沟通中
7 402
该叫什么 leon 发布于2025/8/19
悬赏:0 飞吻

在asp.net core mvc的项目中会有多个数据库,通过依赖注入的,在切换数据库的时候我想咨询一个使用ChangeDatabase和GetConnectionScope哪种方式切换更高效或者说更好呢?

(不同的库的对象是用的SugarTable的TableDescription来作为configId标识的)

image.png

热忱回答7

  • fate sta fate sta VIP0
    2025/8/19

    推荐用 GetConnectionScope ,不推荐用ChangeDatabase

    GetConnectionScope  比ChangeDatabase设计的更好,支持多库同时存在。ChangeDatabase只能切来切去。ChangeDatabase设计难要求过高


    0 回复
  • leon leon VIP0
    2025/8/19

    好的,那使用GetConnectionScope 的时候是否有必要判断一下当前的configid是否一致,就是这个判断是否有必要呢image.png

    0 回复
  • leon leon VIP0
    2025/8/19

    还有就是上面的return接收的时候是用ISqlSugarClient好,还是直接用SqlSugarScopeProvider好呢

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    都行。ISqlSugarClient 好些

    0 回复
  • leon leon VIP0
    2025/8/19

    @fate sta:主要是考虑判断一下少一个调用性能会不会更好一点

    0 回复
  • fate sta fate sta VIP0
    2025/8/19

    @leon:性能2者差异可以忽略,change这种是比较老的设计用的人少

    0 回复
  • leon leon VIP0
    2025/8/19

    @fate sta:我说的是这个判断的性能差异,就是如果当前的ConfigId和标识的一致就不去调用GetConnectionScope对性能会不会有提升

    if (configId != _dbBaseTmp.CurrentConnectionConfig.ConfigId.ToString())//这个判断是否有必要

    {

        return _dbBaseTmp.GetConnectionScope(configId);

    }

    else

    {

        return _dbBaseTmp;

    }


    0 回复