using System.Linq.Expressions; using Microsoft.EntityFrameworkCore; namespace ErsatzTV.Infrastructure.Extensions; public static class QueryableExtensions { public static async Task> SelectOneAsync( this IQueryable enumerable, Expression> keySelector, Expression> predicate) where T : class => await enumerable.OrderBy(keySelector).FirstOrDefaultAsync(predicate); }