Пример #1
0
        public void ShardingStrategyCRUDTest()
        {
            var strategy = new ShardingStrategy()
            {
                ID                = "AreaTableSharding",
                DisplayName       = "地区分表策略",
                PostFixListConfig = "sd,hb,gd,bj,sz,tj,sx,nm,hb,hn,sh",
                ShardingType      = ShardingType.Enum
            };

            try
            {
                ShardingStrategyService.GetInstance().DeleteShardingStrategy(strategy.ID);
                ShardingStrategyService.GetInstance().SaveShardingStrategy(strategy);
                var queryStrategy = ShardingStrategyService.GetInstance().GetShardingStrategy(strategy.ID);

                Assert.IsNotNull(queryStrategy);
                Assert.AreEqual(queryStrategy.DisplayName, strategy.DisplayName);
                Assert.AreEqual(queryStrategy.PostFixListConfig, strategy.PostFixListConfig);
                Assert.AreEqual(queryStrategy.ShardingType, strategy.ShardingType);

                TableShardingStrategy table = new TableShardingStrategy(queryStrategy);
                Assert.IsNotNull(table);
                Assert.AreEqual(queryStrategy.DisplayName, table.DisplayName);
                Assert.AreEqual(queryStrategy.PostFixListConfig, table.PostFixListConfig);
                Assert.AreEqual(queryStrategy.ShardingType, table.ShardingType);
            }
            finally
            {
                ShardingStrategyService.GetInstance().DeleteShardingStrategy(strategy.ID);
            }
        }
Пример #2
0
        /// <summary>
        /// 保存分区策略
        /// </summary>
        /// <param name="strategy">分区策略</param>
        public void SaveShardingStrategy(ShardingStrategy strategy)
        {
            if (strategy == null)
            {
                throw new ArgumentNullException("ShardingStrategyManager.SaveShardingStrategy.strategy");
            }

            DacServiceManager.GetShardingStrategyDao().SaveShardingStrategy(strategy);
        }
        /// <summary>
        /// 保存分区策略
        /// </summary>
        /// <param name="strategy">分区策略</param>
        public void SaveShardingStrategy(ShardingStrategy strategy)
        {
            if (strategy == null)
            {
                throw new ArgumentNullException("ShardingStrategyService.SaveShardingStrategy.strategy");
            }

            manager.SaveShardingStrategy(strategy);
        }
        /// <summary>
        /// 删除分区策略
        /// </summary>
        /// <param name="id">分区策略ID</param>
        public void DeleteShardingStrategy(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException("ShardingStrategyService.DeleteShardingStrategy.id");
            }

            if (dataSourceDic.ContainsKey(id))
            {
                lock (syncObj)
                {
                    if (dataSourceDic.ContainsKey(id))
                    {
                        ShardingStrategy dataSource = null;
                        dataSourceDic.TryRemove(id, out dataSource);
                    }
                }
            }

            manager.DeleteShardingStrategy(id);
        }
Пример #5
0
        public override int GetHashCode()
        {
            int hash = 1;

            hash ^= tableDescriptor_.GetHashCode();
            if (Mode != 0)
            {
                hash ^= Mode.GetHashCode();
            }
            if (BatchSizePerTensorCore != 0)
            {
                hash ^= BatchSizePerTensorCore.GetHashCode();
            }
            if (NumHosts != 0)
            {
                hash ^= NumHosts.GetHashCode();
            }
            if (NumTensorCores != 0)
            {
                hash ^= NumTensorCores.GetHashCode();
            }
            if (ShardingStrategy != 0)
            {
                hash ^= ShardingStrategy.GetHashCode();
            }
            if (PipelineExecutionWithTensorCore != false)
            {
                hash ^= PipelineExecutionWithTensorCore.GetHashCode();
            }
            if (outputLayout_ != null)
            {
                hash ^= OutputLayout.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Пример #6
0
 /// <summary>
 /// 保存分区策略
 /// </summary>
 /// <param name="strategy">分区策略</param>
 public void SaveShardingStrategy(ShardingStrategy strategy)
 {
     ShardingStrategies.Add(strategy);
     this.SaveChanges();
 }