using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Hncore.Infrastructure.Data; using Hncore.Infrastructure.DDD; namespace Hncore.Infrastructure.EF { public class QueryBase : IQuery where TEntity : class, IEntity { protected DbContext Dbcontext; public QueryBase(IQueryDbContext dbContext) { Dbcontext = dbContext.DbContext; } public TEntity GetOne(Expression> condition) { return Dbcontext.GetOne(condition); } public Task GetOneAsync(Expression> condition) { return Dbcontext.GetOneAsync(condition); } public PageData GetList(Expression> condition, int pagesize, int pageindex, bool istotal) { return Dbcontext.GetList(condition, pagesize, pageindex, istotal); } public Task> GetListAsync(Expression> condition, int pagesize, int pageindex, bool istotal) { return Dbcontext.GetListAsync(condition, pagesize, pageindex, istotal); } public List GetList(Expression> condition) { return Dbcontext.GetList(condition); } public Task> GetListAsync(Expression> condition) { return Dbcontext.GetListAsync(condition); } public List TopN(Expression> condition, int topN) { return Dbcontext.TopN(condition, topN); } public Task> TopNAsync(Expression> condition, int topN) { return Dbcontext.TopNAsync(condition, topN); } public IQueryable GetListQueryable(Expression> exp) { return Dbcontext.GetListQueryable(exp); } public bool Exists(Expression> exp) { return Dbcontext.Exists(exp); } public Task ExistsAsync(Expression> condition) { return Dbcontext.ExistsAsync(condition); } public IQueryable GetQueryable() { return Dbcontext.Set().AsNoTracking(); } public DbContext DbContext() { return Dbcontext; } } }