public static async Task <T> FirstOrDefaultAsync <T>(this IQueryable <T> queryable) { if (queryable is IMongoQueryable <T> mongoQueryable) { return(await MongoQueryable.FirstOrDefaultAsync(mongoQueryable)); } else { return(queryable.FirstOrDefault()); } }
public static async Task <T> FirstOrDefaultAsync <T>(this IQueryable <T> queryable, Expression <Func <T, bool> > predicate) { if (queryable is IMongoQueryable <T> mongoQueryable) { return(await MongoQueryable.FirstOrDefaultAsync(mongoQueryable, predicate)); } else { return(queryable.FirstOrDefault(predicate)); } }
public static Task <TEntity> FirstOrDefaultAsync <TEntity>(this IQueryable <TEntity> source, CancellationToken cancellationToken = default) => MongoQueryable.FirstOrDefaultAsync((IMongoQueryable <TEntity>)source, cancellationToken);