DbResource.cs 645 B

12345678910111213141516171819202122232425262728
  1. using Benchmarks.Model;
  2. using GenHTTP.Modules.Webservices;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Benchmarks.Tests;
  5. public sealed class DbResource
  6. {
  7. private static readonly Random Random = new();
  8. [ResourceMethod]
  9. public async ValueTask<World> GetRandomWorld()
  10. {
  11. var id = Random.Next(1, 10001);
  12. var context = Database.NoTrackingPool.Rent();
  13. try
  14. {
  15. return await context.World.FirstOrDefaultAsync(w => w.Id == id).ConfigureAwait(false);
  16. }
  17. finally
  18. {
  19. Database.NoTrackingPool.Return(context);
  20. }
  21. }
  22. }