public void ShouldTransformComplexQuery() { IEnumerable <int> positives = Enumerable.Range(0, 100); IEnumerable <int> negatives = Enumerable.Range(-100, 0); Expression body = X.Express(() => from p in positives from n in negatives let sum = p + n where sum == 0 let product = p * n orderby product descending select sum.ToString()); QueryExpression query = X.Query(body); string[] result = query.Compile <Func <IEnumerable <string> > >()().ToArray(); }