public InventoryRepository(IHttpContextAccessor accessor, ObMultiChoiceContext db, IMapper mapper) : base(
         accessor, db)
 {
     _db     = db;
     _set    = _db.Set <Inventory>();
     _mapper = mapper;
 }
示例#2
0
        public async Task <T> GetOneBy <T>(CancellationToken token, Expression <Func <T, object> >[] includes = null,
                                           params Expression <Func <T, bool> >[] searchTerms) where T : BaseDomainModel
        {
            var query = _db.Set <T>().AsNoTracking();

            if (includes is null || includes.Length == 0)
            {
                query = searchTerms.Aggregate(query, (current, term) => current.Where(term));
                var result = await query.SingleOrDefaultAsync(token).ConfigureAwait(false);

                return(result);
            }

            query = includes.Aggregate(query, (current, include) => current.Include(include));
            query = searchTerms.Aggregate(query, (current, term) => current.Where(term));
            var altResult = await query.SingleOrDefaultAsync(token).ConfigureAwait(false);

            return(altResult);
        }