public static IEnumerable<IEnumerable<dynamic>> ExecuteQueriesToDynamic(
            this IDbCommand command)
        {
            using (var reader = command.ExecuteReader())
            {
                do
                {
                    var values = new object[reader.FieldCount];
                    var names = Enumerable.Range(0, reader.FieldCount)
                                          .Select(reader.GetName)
                                          .ToArray();

                    var currentResult = new List<ExpandoObject>();

                    while (reader.Read())
                    {
                        reader.GetValues(values);
                        var expando = new ExpandoObject();
                        for (var i = 0; i < values.Length; i++)
                        {
                            expando.TryAdd(names[i], values[i]);
                        }
                        currentResult.Add(expando);
                    }

                    yield return currentResult;
                } while (reader.NextResult());
            }
        }