Example #1
0
        public static IJoinBigQueryable <TResult> Join <TOuter, TInner, TResult>(this IJoinBigQueryable <TOuter> source,
                                                                                 JoinType joinType,
                                                                                 IFlattenBigQueryable <TInner> joinTable,
                                                                                 Expression <Func <TOuter, TInner, TResult> > aliasSelector,
                                                                                 Expression <Func <TResult, bool> > joinCondition)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            var tb = joinTable as ITableName;

            if (tb == null)
            {
                var flatten = joinTable as IFlattenBigQueryable <TInner>;
                if (flatten == null)
                {
                    throw new ArgumentException("not supports joinTable Type:" + joinTable.GetType());
                }
                else
                {
                    return(new JoinBigQueryable <TOuter, TInner, TResult>(source, (InternalJoinType)joinType, null, null, flatten, aliasSelector, joinCondition));
                }
            }
            return(new JoinBigQueryable <TOuter, TInner, TResult>(source, (InternalJoinType)joinType, tb.GetTableName(), null, null, aliasSelector, joinCondition));
        }
Example #2
0
        public static IJoinBigQueryable <TResult> Join <TOuter, TInner, TResult>(this IJoinBigQueryable <TOuter> source,
                                                                                 IExecutableBigQueryable <TInner> joinTable,
                                                                                 Expression <Func <TOuter, TInner, TResult> > aliasSelector,
                                                                                 Expression <Func <TResult, bool> > joinCondition)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            return(new JoinBigQueryable <TOuter, TInner, TResult>(source, InternalJoinType.Inner, null, joinTable, null, aliasSelector, joinCondition));
        }
Example #3
0
        public static IJoinBigQueryable <TResult> JoinCross <TOuter, TInner, TResult>(this IJoinBigQueryable <TOuter> source,
                                                                                      IExecutableBigQueryable <TInner> joinTable,
                                                                                      Expression <Func <TOuter, TInner, TResult> > aliasSelector,
                                                                                      bool each = false)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            return(new JoinBigQueryable <TOuter, TInner, TResult>(source, (each ? InternalJoinType.CrossEach : InternalJoinType.Cross), null, joinTable, null, aliasSelector, null));
        }