public void GroupBySelectAggregation() { var db = DatabaseGenerator.Get(); var query = db.Query <Person>().GroupBy(x => x.Age) .Select(byAge => new { len = AQL.Length(byAge), byAge.Key, Ages = byAge.Select(x => x.Age) }); Assert.Equal(query.GetQueryData().Query.RemoveSpaces(), @"for `x` in `Person` collect `CV1` = `x`.`Age` into `C1` return { `len` : length( `C1` ) , `Key` : `CV1` , `Ages` : ( for `x` in `C1` return `x`.`x`.`Age` ) }".RemoveSpaces()); }
public async Task <TUser> FindByLoginAsync(string loginProvider, string providerKey, CancellationToken cancellationToken) { return(await Database.Query <TUser>() .Where(d => AQL.Length( Database.Query <TUser>() .For(a => a.Logins) .Where(b => b.LoginProvider == loginProvider && b.ProviderKey == providerKey) .Select(c => c) ) != 0 ) .Select(d => d) .FirstOrDefaultAsync()); }
public void TraversalFilter() { InitiateGraph(); var result = db.Query() .Traversal <Person, Follow>(alice.Id) .Depth(1, 6) .Graph(graphName) .Where(g => AQL.Length( db.Query().For(_ => g.Path.Vertices) .Where(v => v.Id == charlie.Id) .Select(v => v)) == 0) .Select(g => g.Vertex) .ToList(); Assert.Equal(2, result.Count); }