Пример #1
0
        private IQueryable <TEntity> Include(params Expression <Func <TEntity, object> >[] includeProperties)
        {
            IQueryable <TEntity> query = DataSet.AsNoTracking();

            return(includeProperties
                   .Aggregate(query, (current, includeProperty) => current.Include(includeProperty)));
        }
Пример #2
0
        public async Task <T> GetByIdAsync(Guid id, QueryCriteria <T> queryCriteria)
        {
            var dataSet = queryCriteria.AsNoTracking ? DataSet.AsNoTracking() : DataSet;
            var entity  = await dataSet.Where(e => e.Id == id).ApplyQueryCriteria(queryCriteria).SingleOrDefaultAsync();

            return(entity);
        }
Пример #3
0
        public async Task <int> CountAsync(QueryCriteria <T> queryCriteria)
        {
            var queryResult = new QueryResult <T>();
            var dataSet     = queryCriteria.AsNoTracking ? DataSet.AsNoTracking() : DataSet;
            var resultCount = await dataSet.ApplyQueryCriteria(queryCriteria, queryResult).CountAsync();

            return(resultCount);
        }
Пример #4
0
        public async Task <QueryResult <T> > QueryAsync(QueryCriteria <T> queryCriteria)
        {
            var queryResult = new QueryResult <T>();
            var dataSet     = queryCriteria.AsNoTracking ? DataSet.AsNoTracking() : DataSet;

            LoadRelatedEntities(queryCriteria);
            queryResult.Items = await dataSet.ApplyQueryCriteria(queryCriteria, queryResult).ToListAsync();

            return(queryResult);
        }
Пример #5
0
 public T FirstOrDefault(Expression <Func <T, bool> > expression)
 {
     return(DataSet.AsNoTracking().FirstOrDefault(expression));
 }
Пример #6
0
 public T Single(Expression <Func <T, bool> > expression)
 {
     return(DataSet.AsNoTracking().Single(expression));
 }
Пример #7
0
 public IQueryable <T> Where(Expression <Func <T, bool> > expression)
 {
     return(DataSet.AsNoTracking().Where(expression));
 }
Пример #8
0
 public IQueryable <T> All()
 {
     return(DataSet.AsNoTracking());
 }