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