/// <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()); }
/// <summary> /// 串联多个参数化查询对象 /// </summary> /// <param name="firstQuery">第一个参数化查询对象</param> /// <param name="otherQueries">要串联的其他参数化查询对象</param> /// <returns>串联后的参数化查询对象</returns> public static ParameterizedQuery Concat(this ParameterizedQuery firstQuery, params ParameterizedQuery[] otherQueries) { var builder = new ParameterizedQueryBuilder(); firstQuery.AppendTo(builder); foreach (var query in otherQueries) { if (!builder.IsEndWithWhiteSpace() && !query.IsStartWithWhiteSpace() && Db.AddWhiteSpaceOnConcat) { builder.Append(' '); } query.AppendTo(builder); } return(builder.CreateQuery()); }
/// <summary> /// 串联多个参数化查询对象 /// </summary> /// <param name="firstQuery">第一个参数化查询对象</param> /// <param name="otherQueries">要串联的其他参数化查询对象</param> /// <returns>串联后的参数化查询对象</returns> public static ParameterizedQuery Concat(this ParameterizedQuery firstQuery, params ParameterizedQuery[] otherQueries) { var builder = new ParameterizedQueryBuilder(); firstQuery.AppendTo(builder); foreach (var query in otherQueries) { if (query == null || string.IsNullOrEmpty(query.TextTemplate)) { continue; } if (!builder.IsEndWithWhiteSpace() && !query.IsStartWithWhiteSpace() && Db.AddWhiteSpaceOnConcat) { builder.Append(' '); } query.AppendTo(builder); } return(builder.CreateQuery()); }