Esempio n. 1
0
        private string GetUpsertSql(string schemaName, string tableName, int count)
        {
            var sql = _upsertSqlCache.GetOrAdd(count, CreateUpsertSql);

            return(sql);


            string CreateUpsertSql(int valueCount)
            {
                string upsertManySqlHeader =
                    $"REPLACE INTO {schemaName}.{tableName} (claptrap_type_code,claptrap_id,version,state_data,updated_time) VALUES ";
                var sb        = new StringBuilder(upsertManySqlHeader);
                var valuesSql = Enumerable.Range(0, count)
                                .Select(x =>
                                        ValuePartFactory(RelationalStateEntity.ParameterNames(), x))
                                .ToArray();

                sb.Append(string.Join(",", valuesSql));
                return(sb.ToString());

                string ValuePartFactory(IEnumerable <string> parameters, int index)
                {
                    var values = string.Join(",", parameters.Select(x => _sqlTemplateCache.GetParameterName(x, index)));
                    var re     = $" ({values}) ";

                    return(re);
                }
            }
        }
Esempio n. 2
0
 public static void RegisterParameters(ISqlTemplateCache sqlTemplateCache, int maxCount)
 {
     foreach (var name in RelationalStateEntity.ParameterNames())
     {
         for (var i = 0; i < maxCount; i++)
         {
             sqlTemplateCache.AddParameterName(name, i);
         }
     }
 }