Browse Source

Replace 'FindAsync' with 'FirstOrDefaultAsync' which is hopefully faster (#6235)

Andreas Nägeli 4 years ago
parent
commit
2f8927d37b

+ 4 - 3
frameworks/CSharp/genhttp/Benchmarks/Tests/CacheResource.cs

@@ -3,12 +3,13 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
 
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Memory;
+
 using Benchmarks.Model;
 
 using GenHTTP.Modules.Webservices;
 
-using Microsoft.Extensions.Caching.Memory;
-
 namespace Benchmarks.Tests
 {
 
@@ -67,7 +68,7 @@ namespace Benchmarks.Tests
                 }
                 else
                 {
-                    var resolved = await context.World.FindAsync(id);
+                    var resolved = await context.World.FirstOrDefaultAsync(w => w.Id == id);
 
                     _Cache.Set(key, resolved);
 

+ 3 - 1
frameworks/CSharp/genhttp/Benchmarks/Tests/DbResource.cs

@@ -1,6 +1,8 @@
 using System;
 using System.Threading.Tasks;
 
+using Microsoft.EntityFrameworkCore;
+
 using GenHTTP.Modules.Webservices;
 
 using Benchmarks.Model;
@@ -19,7 +21,7 @@ namespace Benchmarks.Tests
 
             using var context = DatabaseContext.CreateNoTracking();
 
-            return await context.World.FindAsync(id);
+            return await context.World.FirstOrDefaultAsync(w => w.Id == id);
         }
 
     }

+ 3 - 1
frameworks/CSharp/genhttp/Benchmarks/Tests/QueryResource.cs

@@ -2,6 +2,8 @@
 using System.Collections.Generic;
 using System.Threading.Tasks;
 
+using Microsoft.EntityFrameworkCore;
+
 using Benchmarks.Model;
 
 using GenHTTP.Modules.Webservices;
@@ -34,7 +36,7 @@ namespace Benchmarks.Tests
             {
                 var id = _Random.Next(1, 10001);
 
-                result.Add(await context.World.FindAsync(id));
+                result.Add(await context.World.FirstOrDefaultAsync(w => w.Id == id));
             }
 
             return result;

+ 3 - 1
frameworks/CSharp/genhttp/Benchmarks/Tests/UpdateResource.cs

@@ -3,6 +3,8 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
 
+using Microsoft.EntityFrameworkCore;
+
 using Benchmarks.Model;
 
 using GenHTTP.Modules.Webservices;
@@ -35,7 +37,7 @@ namespace Benchmarks.Tests
             {
                 foreach (var id in ids)
                 {
-                    var record = await context.World.FindAsync(id);
+                    var record = await context.World.FirstOrDefaultAsync(w => w.Id == id);
 
                     var old = record.RandomNumber;