protected override void OnCompile() { if (SyntaxNode.GroupByClause == null) { Select = SyntaxNode.CreateSelector <TSource, TResult>(); } else { GroupBySelect = SyntaxNode.CreateGroupBySelector <TSource, TResult>(); } if (SyntaxNode.WhereClause != null) { Where = SyntaxNode.WhereClause.CreateEvaluator <TSource>(); } if (SyntaxNode.OrderByClause != null) { OrderBy = SyntaxNode.OrderByClause.CreateFunction <TSource>(); } if (SyntaxNode.HavingClause != null) { Having = SyntaxNode.HavingClause.CreateEvaluator <TResult>(); } }