/// <summary> /// 转换 /// </summary> /// <returns>The to command builder.</returns> /// <param name="sql">Sql.</param> /// <param name="values">Values.</param> private static CommandBuilder ConvertToCommandBuilder(this ISession session, string sql, object[] values) { string[] parts = sql.Split('?'); int count = values == null ? 0 : values.Length; if (parts.Length - 1 != count) { throw new ArgumentOutOfRangeException("参数数量与参数值数量不一致。"); } CommandBuilder commandBuilder = session.Provider.Factory.CreateCommandBuilder(); StringBuilder builder = new StringBuilder(); for (int i = 0; i < parts.Length; i++) { builder.Append(parts[i]); if (i < parts.Length - 1) { builder.Append(commandBuilder.AddParameter(values[i])); } } commandBuilder.Sql = builder.ToString(); return(commandBuilder); }
/// <summary> /// Converts to command builder. /// </summary> /// <returns>The to command builder.</returns> /// <param name="session">Session.</param> /// <param name="sql">Sql.</param> /// <param name="parameters">Parameters.</param> private static CommandBuilder ConvertToCommandBuilder(this ISession session, string sql, IDictionary <string, object> parameters) { CommandBuilder builder = session.Provider.Factory.CreateCommandBuilder(); builder.Sql = sql; if (parameters != null) { foreach (var item in parameters) { builder.AddParameter(item.Key, item.Value); } } return(builder); }