Skip to content

Commit 2f8927d

Browse files
Replace 'FindAsync' with 'FirstOrDefaultAsync' which is hopefully faster (#6235)
1 parent 8efec7a commit 2f8927d

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

frameworks/CSharp/genhttp/Benchmarks/Tests/CacheResource.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
using System.Linq;
44
using System.Threading.Tasks;
55

6+
using Microsoft.EntityFrameworkCore;
7+
using Microsoft.Extensions.Caching.Memory;
8+
69
using Benchmarks.Model;
710

811
using GenHTTP.Modules.Webservices;
912

10-
using Microsoft.Extensions.Caching.Memory;
11-
1213
namespace Benchmarks.Tests
1314
{
1415

@@ -67,7 +68,7 @@ public async ValueTask<List<World>> GetWorlds(string queries)
6768
}
6869
else
6970
{
70-
var resolved = await context.World.FindAsync(id);
71+
var resolved = await context.World.FirstOrDefaultAsync(w => w.Id == id);
7172

7273
_Cache.Set(key, resolved);
7374

frameworks/CSharp/genhttp/Benchmarks/Tests/DbResource.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System;
22
using System.Threading.Tasks;
33

4+
using Microsoft.EntityFrameworkCore;
5+
46
using GenHTTP.Modules.Webservices;
57

68
using Benchmarks.Model;
@@ -19,7 +21,7 @@ public async ValueTask<World> GetRandomWorld()
1921

2022
using var context = DatabaseContext.CreateNoTracking();
2123

22-
return await context.World.FindAsync(id);
24+
return await context.World.FirstOrDefaultAsync(w => w.Id == id);
2325
}
2426

2527
}

frameworks/CSharp/genhttp/Benchmarks/Tests/QueryResource.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Collections.Generic;
33
using System.Threading.Tasks;
44

5+
using Microsoft.EntityFrameworkCore;
6+
57
using Benchmarks.Model;
68

79
using GenHTTP.Modules.Webservices;
@@ -34,7 +36,7 @@ public async ValueTask<List<World>> GetWorlds(string queries)
3436
{
3537
var id = _Random.Next(1, 10001);
3638

37-
result.Add(await context.World.FindAsync(id));
39+
result.Add(await context.World.FirstOrDefaultAsync(w => w.Id == id));
3840
}
3941

4042
return result;

frameworks/CSharp/genhttp/Benchmarks/Tests/UpdateResource.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using System.Linq;
44
using System.Threading.Tasks;
55

6+
using Microsoft.EntityFrameworkCore;
7+
68
using Benchmarks.Model;
79

810
using GenHTTP.Modules.Webservices;
@@ -35,7 +37,7 @@ public async ValueTask<List<World>> UpdateWorlds(string queries)
3537
{
3638
foreach (var id in ids)
3739
{
38-
var record = await context.World.FindAsync(id);
40+
var record = await context.World.FirstOrDefaultAsync(w => w.Id == id);
3941

4042
var old = record.RandomNumber;
4143

0 commit comments

Comments
 (0)