Exemplo n.º 1
0
        /// <summary>
        /// 将多个参数化查询串联起来并用指定的字符串分隔
        /// </summary>
        /// <param name="sperator">分隔符</param>
        /// <param name="queries">参数化查询</param>
        /// <returns>串联后的结果</returns>
        public static ParameterizedQuery Join(this string sperator, params ParameterizedQuery[] queries)
        {
            if (!queries.Any())
            {
                return(null);
            }

            var builder = new ParameterizedQueryBuilder();

            queries[0].AppendTo(builder);

            foreach (var q in queries.Skip(1))
            {
                builder.AppendText(sperator);
                builder.AppendPartial(q);
            }


            return(builder.CreateQuery());
        }
Exemplo n.º 2
0
        /// <summary>
        /// 将多个参数化查询串联起来并用指定的字符串分隔
        /// </summary>
        /// <param name="sperator">分隔符</param>
        /// <param name="queries">参数化查询</param>
        /// <returns>串联后的结果</returns>
        public static ParameterizedQuery Join(this string sperator, params ParameterizedQuery[] queries)
        {
            if (queries == null)
            {
                throw new ArgumentNullException("queries");
            }


            queries = queries.Where(i => i != null).ToArray();//去除所有为 null 的参数化查询对象
            if (!queries.Any())
            {
                return(null);
            }

            var builder = new ParameterizedQueryBuilder();

            queries[0].AppendTo(builder);

            foreach (var q in queries.Skip(1))
            {
                if (!builder.IsEndWithWhiteSpace() && !char.IsWhiteSpace(sperator[0]) && Db.AddWhiteSpaceOnConcat)
                {
                    builder.Append(' ');
                }

                builder.AppendText(sperator);

                if (!builder.IsEndWithWhiteSpace() && !q.IsStartWithWhiteSpace() && Db.AddWhiteSpaceOnConcat)
                {
                    builder.Append(' ');
                }

                builder.AppendPartial(q);
            }


            return(builder.CreateQuery());
        }