using PoweredSoft.DbContext.Core; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading; using System.Threading.Tasks; namespace PoweredSoft.DbContext.EntityFramework { public class EntityFrameworkQueryableService : IQueryableService { public Task AnyAsync(IQueryable source, Expression> predicate, CancellationToken cancellationToken) where T : class { return System.Data.Entity.QueryableExtensions.AnyAsync(source, predicate, cancellationToken); } public Task AnyAsync(IQueryable source, CancellationToken cancellationToken) where T : class { return System.Data.Entity.QueryableExtensions.AnyAsync(source, cancellationToken); } public IQueryable AsNoTracking(IQueryable source) where T : class { return System.Data.Entity.QueryableExtensions.AsNoTracking(source); } public IQueryable AsNoTracking(IQueryable source) { return System.Data.Entity.QueryableExtensions.AsNoTracking(source); } public bool CanHandle(IQueryable queryable) { return queryable.Provider is System.Data.Entity.Infrastructure.IDbAsyncQueryProvider; } public bool CanHandle(IQueryable queryable) { return queryable.Provider is System.Data.Entity.Infrastructure.IDbAsyncQueryProvider; } public Task FirstAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class { return System.Data.Entity.QueryableExtensions.FirstAsync(source, cancellationToken); } public Task FirstAsync(IQueryable source, Expression> predicate, CancellationToken cancellationToken = default) where T : class { return System.Data.Entity.QueryableExtensions.FirstAsync(source, predicate, cancellationToken); } public Task FirstOrDefaultAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class { return System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(source, cancellationToken); } public Task FirstOrDefaultAsync(IQueryable source, Expression> predicate, CancellationToken cancellationToken = default) where T : class { return System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(source, predicate, cancellationToken); } public IQueryable Include(IQueryable source, Expression> path) where T : class { return System.Data.Entity.QueryableExtensions.Include(source, path); } public IQueryable Include(IQueryable source, string path) where T : class { return System.Data.Entity.QueryableExtensions.Include(source, path); } public Task> ToListAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class { return System.Data.Entity.QueryableExtensions.ToListAsync(source, cancellationToken); } } }