public Expression <Func <TEntity, bool> > Or(IPredicateBinder <TEntity> predicateBinder) { return(Or(predicateBinder.Query())); }
if(entity != null) Delete(entity); } public virtual void Delete(TEntity entity) { _context.SetEntityEntry(entity).State = EntityState.Deleted; _dbSet.Attach(entity); } public virtual async Task<bool> DeleteAsync(params object[] keyValues) { return await DeleteAsync(CancellationToken.None, keyValues); } public virtual async Task<bool> DeleteAsync(CancellationToken cancellationToken, params object[] keyValues) { var entity = await FindAsync(cancellationToken, keyValues); if (entity == null) { return false; } _context.SetEntityEntry(entity).State = EntityState.Deleted; _dbSet.Attach(entity); return true; } IQueryFluent<TEntity, TKey> IRepository<TEntity, TKey>.Query(Expression<Func<TEntity, bool>> query) { return Query(query); } IQueryFluent<TEntity, TKey> IRepository<TEntity, TKey>.Query() { return Query(); } public IQueryFluent<TEntity, TKey> Query() { return new QueryFluent<TEntity, TKey>(this); } public virtual IQueryFluent<TEntity, TKey> Query(IPredicateBinder<TEntity> predicateBinder) { return new QueryFluent<TEntity, TKey>(this, predicateBinder); } public virtual IQueryFluent<TEntity, TKey> Query(Expression<Func<TEntity, bool>> query) { return new QueryFluent<TEntity, TKey>(this, query); } public IQueryable<TEntity> Queryable() { return _dbSet; } public virtual async Task<TEntity> FindAsync(params object[] keyValues) { return await _dbSet.FindAsync(keyValues); } public virtual async Task<TEntity> FindAsync(CancellationToken cancellationToken, params object[] keyValues) { return await _dbSet.FindAsync(cancellationToken, keyValues); }
public QueryFluent(Repository <TEntity, TKey> repository, IPredicateBinder <TEntity> predicateBinder) : this(repository) { _expression = predicateBinder.Query(); }