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 }
    };
  • 相关阅读:
    给xml某个节点赋值
    把datatable的某些数据提取出来放在另一个表中
    投资技巧:抛股票有技巧 常用方法介绍
    jquery的实用技巧,非常实用
    我觉得需要关注和跟进的一些.net技术
    公司网站的架构
    uboot移植经历
    ARM处理器中CP15协处理器的寄存器
    uboot 学习 Makefile分析
    uboot移植
  • 原文地址:https://www.cnblogs.com/subendong/p/14768345.html
Copyright © 2011-2022 走看看