Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }