diff --git a/src/BenchmarksApps/TodosApi/DataExtensions.cs b/src/BenchmarksApps/TodosApi/DataExtensions.cs index bded32c80..f3595d0d1 100644 --- a/src/BenchmarksApps/TodosApi/DataExtensions.cs +++ b/src/BenchmarksApps/TodosApi/DataExtensions.cs @@ -144,21 +144,6 @@ public static Task QueryAsync(this NpgsqlCommand command, Canc public static Task QueryAsync(this NpgsqlCommand command, CommandBehavior commandBehavior, CancellationToken cancellationToken = default) => command.ExecuteReaderAsync(commandBehavior, cancellationToken); - public static Task> ToListAsync(this IAsyncEnumerable enumerable, CancellationToken cancellationToken) - => ToListAsync(enumerable, null, cancellationToken); - - public static async Task> ToListAsync(this IAsyncEnumerable enumerable, int? initialCapacity = null, CancellationToken cancellationToken = default) - { - var list = initialCapacity.HasValue ? new List(initialCapacity.Value) : new List(); - - await foreach (var item in enumerable.WithCancellation(cancellationToken)) - { - list.Add(item); - } - - return list; - } - public static NpgsqlParameterCollection AddTyped(this NpgsqlParameterCollection parameters, T? value) { parameters.Add(new NpgsqlParameter diff --git a/src/BenchmarksApps/TodosApi/TodoApi.cs b/src/BenchmarksApps/TodosApi/TodoApi.cs index 8d99d38cc..19ef87871 100644 --- a/src/BenchmarksApps/TodosApi/TodoApi.cs +++ b/src/BenchmarksApps/TodosApi/TodoApi.cs @@ -13,18 +13,16 @@ public static RouteGroupBuilder MapTodoApi(this IEndpointRouteBuilder routes) group.AddValidationFilter(); - // BUG: Having to call ToListAsync() on query results until JSON support for unspeakable types (https://github.com/dotnet/aspnetcore/issues/47548) is resolved - group.MapGet("/", (NpgsqlDataSource db, CancellationToken ct) => - db.QueryAsync("SELECT * FROM Todos", ct).ToListAsync(ct)) + db.QueryAsync("SELECT * FROM Todos", ct)) .WithName("GetAllTodos"); group.MapGet("/complete", (NpgsqlDataSource db, CancellationToken ct) => - db.QueryAsync("SELECT * FROM Todos WHERE IsComplete = true", ct).ToListAsync(ct)) + db.QueryAsync("SELECT * FROM Todos WHERE IsComplete = true", ct)) .WithName("GetCompleteTodos"); group.MapGet("/incomplete", (NpgsqlDataSource db, CancellationToken ct) => - db.QueryAsync("SELECT * FROM Todos WHERE IsComplete = false", ct).ToListAsync(ct)) + db.QueryAsync("SELECT * FROM Todos WHERE IsComplete = false", ct)) .WithName("GetIncompleteTodos"); group.MapGet("/{id:int}", async Task, NotFound>> (int id, NpgsqlDataSource db, CancellationToken ct) => @@ -104,7 +102,6 @@ await db.ExecuteAsync( } [JsonSerializable(typeof(Todo))] -[JsonSerializable(typeof(List))] [JsonSerializable(typeof(IAsyncEnumerable))] internal partial class TodoApiJsonSerializerContext : JsonSerializerContext {