public static async Task DumpSubspace([NotNull] IFdbReadOnlyTransaction tr, [NotNull] IFdbSubspace subspace) { Assert.That(tr, Is.Not.Null); Console.WriteLine("Dumping content of subspace " + subspace.ToString() + " :"); int count = 0; await tr .GetRange(KeyRange.StartsWith(subspace.Key)) .ForEachAsync((kvp) => { var key = subspace.ExtractKey(kvp.Key, boundCheck: true); ++count; string keyDump = null; try { // attemps decoding it as a tuple keyDump = key.ToTuple().ToString(); } catch (Exception) { // not a tuple, dump as bytes keyDump = "'" + key.ToString() + "'"; } Console.WriteLine("- " + keyDump + " = " + kvp.Value.ToString()); }); if (count == 0) { Console.WriteLine("> empty !"); } else { Console.WriteLine("> Found " + count + " values"); } }