using System; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using LanguageExt; 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); } }