public static IEnumerable <TResult> Query <TSource, TInner, TResult>(this IEnumerable <TSource> enumerable, string sql, IEnumerable <TInner> inner) { Debug.Assert(enumerable != null); Debug.Assert(inner != null); Debug.Assert(string.IsNullOrEmpty(sql) == false, "Sql cannot be empty"); JoinQuery <TSource, TInner, TResult> query = new JoinQuery <TSource, TInner, TResult>(sql); query.Compile(); return(query.Evaluate(enumerable, inner)); }
protected override void OnCompile() { if (Sql == "subquery") // this whole subquery bit is still a work in progress { ((ICompile)_query).Compile(SyntaxNode); } else { _query.Compile(); } Select = SyntaxNode.Columns.CreateScalarSelector <TSource, TInner, TResult>(_query.Evaluate); }