Exemple #1
0
        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);
        }