private ICollection <string> DoSharding(ICollection <string> availableTargetNames, ListRouteValue shardingValue)
        {
            ICollection <string> result = new LinkedList <string>();

            foreach (var value in shardingValue.GetValues())
            {
                string target = preciseShardingAlgorithm.DoSharding(availableTargetNames, new PreciseShardingValue(shardingValue.GetTableName(), shardingValue.GetColumnName(), value));
                if (null != target)
                {
                    result.Add(target);
                }
            }
            return(result);
        }
Example #2
0
 private bool IsSameRouteValue(ShardingRule shardingRule, ListRouteValue routeValue1, ListRouteValue routeValue2)
 {
     return(IsSameLogicTable(shardingRule, routeValue1, routeValue2) && routeValue1.GetColumnName().Equals(routeValue2.GetColumnName()) && routeValue1.GetValues().SequenceEqual(routeValue2.GetValues()));
 }