public override IEnumerable <T> DoQuery(NoSqlQuery <T> queryFilters) { CheckOpenedConnection(); IExpression whereExpression = Expression.Property("collection").EqualTo(Expression.String(CollectionName)); // Interpret Linq query to expression if (queryFilters.Filter != null) { var wherePreFilterExpression = Linq2CouchbaseLiteExpression.GenerateFromExpression(queryFilters.Filter); if (wherePreFilterExpression != null) { whereExpression = whereExpression.And(wherePreFilterExpression); } } var queryBuilder = QueryBuilder.Select(SelectResult.Expression(Meta.ID)) .From(DataSource.Database(database)) .Where(whereExpression) .Limit(queryFilters.Limit > 0 ? Expression.Int(queryFilters.Limit) : Expression.Int(int.MaxValue)); IList <string> ids = null; using (var query = queryBuilder) { ids = query.Execute().Select(row => row.GetString("id")).ToList(); } var resultSet = ids.Select(e => GetById(e)); return(resultSet); }
public override IEnumerable <T> DoQuery(NoSqlQuery <T> queryFilters) { var query = localDb.Values.Select(e => e); // Filters : if (queryFilters.Filter != null) { var filterFunction = queryFilters.Filter.Compile(); query = query.Where(e => filterFunction.Invoke(e)); } if (queryFilters.Skip > 0) { query = query.Skip(queryFilters.Skip); } if (queryFilters.Limit > 0) { query = query.Take(queryFilters.Limit); } return(query); }
public override IEnumerable <T> DoQuery(NoSqlQuery <T> queryFilters) { throw new NotImplementedException(); }
public abstract IEnumerable <T> DoQuery(NoSqlQuery <T> queryFilters);