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