public DbCommand GetInsertCommand(TableMapping mapping, ConflictResolution extra, object[] args)
        {
            var key = new Tuple<TableMapping, ConflictResolution, bool>(mapping, extra, false);
            bool created = false;
            var command = insertCommands.GetOrAdd(key, tuple =>
                {
                    created = true;
                    DbCommand cmd = this.Connection.CreateCommand();
                    cmd.CommandText = mapping.GetInsertSql(extra, (args == null));
                    return cmd;
                });

            if (SqliteSessionBase.Trace)
            {
                Debug.WriteLine("Creating insert command: {0}", created);
            }

            if (args != null)
            {
                AddCommandParameters(command, args);
            }

            return command;
        }