public async Task <QueryResult <TTargetEntity> > QueryWithProjectionAsync <TTargetEntity>(BaseQuery <TEntity> specification, bool includeCount = false)
            where TTargetEntity : class
        {
            specification?.BuildQuery();

            return(await EntityRepository.ListWithProjectionAsync <TTargetEntity>(specification, includeCount));
        }
        public async Task <QueryResult <TEntity> > QueryAsync(BaseQuery <TEntity> specification, bool includeCount = false)
        {
            specification?.BuildQuery();

            return(await EntityRepository.ListAsync(specification, includeCount));
        }