private ValueTask <T> FindAsync(ReadConsistency consistency, params object[] keyValues) { if (consistency == ReadConsistency.Weak) { return(_readOnlydbSet.FindAsync(keyValues)); } return(_dbSet.FindAsync(keyValues)); }
public virtual IQueryable <T> GetAll(ReadConsistency consistency = ReadConsistency.Default, Expression <Func <T, object> >[] propertySelectors = null) { IQueryable <T> query = propertySelectors != null? WithDetails(propertySelectors) : GetQueryable(); return(query.AsNoTracking()); }
public virtual ValueTask <T> Get(TKey key, bool includeDetails = false, ReadConsistency consistency = ReadConsistency.Default) { if (key is IEntityKey <T> ek) { return(includeDetails ? GetWithDetails(ek, consistency) : FindAsync(consistency, ek.GetValues())); } return(FindAsync(consistency, key)); }
public override DbContext GetContext(ReadConsistency consistency) { switch (consistency) { case ReadConsistency.Strong: return(Context); case ReadConsistency.Weak: return(_readOnlyContext); default: return(Context); } }
protected virtual IQueryable <T> GetQueryable(ReadConsistency consistency) { switch (consistency) { case ReadConsistency.Strong: return(_dbSet); case ReadConsistency.Weak: return(_readOnlydbSet); default: return(_dbSet); } }
public Task <PagedQuery <T> > GetAllPaginated( int page = 1, int pageSize = 100, bool includeDetails = true, Func <IQueryable <T>, IQueryable <T> > filterFunc = null, Func <IQueryable <T>, IOrderedQueryable <T> > sortFunc = null, ReadConsistency consistency = ReadConsistency.Default) { var query = GetAll(includeDetails, consistency); if (filterFunc != null) { query = filterFunc(query); } return(query.AsPagedQuery(page, pageSize, sortFunc)); }
public virtual DbContext GetContext(ReadConsistency consistency) { return(_context); }
public override async ValueTask <T> Get(TKey key, bool includeDetails = true, ReadConsistency consistency = ReadConsistency.Default) { if (includeDetails) { IQueryable <T> query = WithDetailsSingle(consistency); return(await query.FirstOrDefaultAsync(x => x.Id.Equals(key))); } return(await base.Get(key, includeDetails, consistency)); }
public virtual ValueTask <T> Get(TKey key, ReadConsistency consistency = ReadConsistency.Default) { return(_dbSet.FindAsync(key)); }
public virtual IQueryable <T> GetAll(bool includeDetails = false, ReadConsistency consistency = ReadConsistency.Default) { IQueryable <T> query = includeDetails ? WithDetails(consistency) : GetQueryable(consistency); return(query.AsNoTracking()); }
private async ValueTask <T> GetWithDetails(IEntityKey <T> key, ReadConsistency consistency) { return(await WithDetailsSingle(consistency).FirstOrDefaultAsync(key.GetFilter())); }
protected virtual IQueryable <T> WithDetailsSingle(ReadConsistency consistency) => WithDetails(consistency);
protected virtual IQueryable <T> WithDetails(ReadConsistency consistency) => GetQueryable(consistency);