public static async Task <IQueryResult <TEntity> > QueryAsync <TEntity>(this IBucket bucket, Expression <Func <TEntity, bool> > expression) where TEntity : class, IBaseEntity { string condition = $"type='{BaseEntity<TEntity>.DocumentType}'"; var request = new QueryRequest(); if (expression != null) { var translator = new CouchQueryTranslator(); var command = translator.Translate(expression); condition = $"{command.Command} AND {condition}"; request.AddPositionalParameter(command.Parameters.Select(p => p.Value).ToArray()); } request.Statement($"SELECT {bucket.Name}.* FROM {bucket.Name} WHERE {condition}"); var query = await bucket.QueryAsync <TEntity>(request); return(query); }