zoukankan      html  css  js  c++  java
  • abp vnext 多租户实现ITenantStore遇到的一个问题

    MD,这个问题之前解决过,只是事过几个月再回来弄,具体细节给忘记了。这次一定要记录下来,免得下次再踩坑。

            public async Task<TenantConfiguration> FindAsync(Guid id)
            {
                var client = _httpClientFactory.CreateClient();
                var response = await client.GetStringAsync($"{_apiHelper.TenantApi}/api/tenant/Get?id=" + id);
    
                var jObject = JObject.Parse(response);
                var data = jObject["data"];
                var tenant = JsonConvert.DeserializeObject<Tenant.Tenant>(data.ToString());
    
                if (tenant == null) throw new UserFriendlyException("租户不存在");
    
                var connectionStrings = new ConnectionStrings
                {
                    { "Equipment", tenant.TenantConnectionStrings.FirstOrDefault().Value }
                };
    
                TenantConfiguration config = new()
                {
                    Id = id,
                    Name = tenant.Name,
                    ConnectionStrings = connectionStrings
                };
    
                return config;
            }

    上面标红的连接字符串名称一定要与Domain项目EquipmentDbProperties.cs中的静态变量ConnectionStringName保持一致

        public static class EquipmentDbProperties
        {
            public static string DbTablePrefix { get; set; } = "equip_";
    
            public static string DbSchema { get; set; } = null;
    
            public const string ConnectionStringName = "Equipment";
        }

    可以使用如下方式进行替代,避免写死。

    var connectionStrings = new ConnectionStrings
    {
        { EquipmentDbProperties.ConnectionStringName, tenant.TenantConnectionStrings.FirstOrDefault().Value }
    };
  • 相关阅读:
    基础 ByteBuffer 和 ByteBuf
    Java 堆栈,内存分配理解
    JVM 调优参数设置
    Python 安装 matplotlib 制图
    UOJ#207. 共价大爷游长沙
    ORM学习 一 : JPA JDBC
    常见的Web攻击手段
    《Kubernetes权威指南第2版》学习(二)一个简单的例子
    五 pyJWT使用
    《Kubernetes权威指南第2版》学习(一) Kubernetes是什么
  • 原文地址:https://www.cnblogs.com/subendong/p/14768345.html
Copyright © 2011-2022 走看看