@@ -26,41 +26,47 @@ internal static List<T> Select<T>(this IDbCommand dbCmd, Expression<Func<T, bool
2626
2727 internal static List < Tuple < T , T2 > > SelectMulti < T , T2 > ( this IDbCommand dbCmd , SqlExpression < T > q )
2828 {
29- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , EOT , EOT , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
29+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , EOT , EOT , EOT , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
3030 return dbCmd . ExprConvertToList < Tuple < T , T2 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
3131 }
3232
3333 internal static List < Tuple < T , T2 , T3 > > SelectMulti < T , T2 , T3 > ( this IDbCommand dbCmd , SqlExpression < T > q )
3434 {
35- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , EOT , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
35+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , EOT , EOT , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
3636 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
3737 }
3838
3939 internal static List < Tuple < T , T2 , T3 , T4 > > SelectMulti < T , T2 , T3 , T4 > ( this IDbCommand dbCmd , SqlExpression < T > q )
4040 {
41- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
41+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , EOT , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
4242 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
4343 }
4444
4545 internal static List < Tuple < T , T2 , T3 , T4 , T5 > > SelectMulti < T , T2 , T3 , T4 , T5 > ( this IDbCommand dbCmd , SqlExpression < T > q )
4646 {
47- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
47+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , EOT , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
4848 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
4949 }
5050
5151 internal static List < Tuple < T , T2 , T3 , T4 , T5 , T6 > > SelectMulti < T , T2 , T3 , T4 , T5 , T6 > ( this IDbCommand dbCmd , SqlExpression < T > q )
5252 {
53- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
53+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , EOT , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
5454 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 , T6 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
5555 }
5656
5757 internal static List < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 > > SelectMulti < T , T2 , T3 , T4 , T5 , T6 , T7 > ( this IDbCommand dbCmd , SqlExpression < T > q )
5858 {
59- q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , T7 > ( dbCmd . GetDialectProvider ( ) ) ) ;
59+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , T7 , EOT > ( dbCmd . GetDialectProvider ( ) ) ) ;
6060 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
6161 }
6262
63- internal static string CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , T7 > ( this SqlExpression < T > q , IOrmLiteDialectProvider dialectProvider )
63+ internal static List < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > > SelectMulti < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( this IDbCommand dbCmd , SqlExpression < T > q )
64+ {
65+ q . SelectIfDistinct ( q . CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( dbCmd . GetDialectProvider ( ) ) ) ;
66+ return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > > ( q . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
67+ }
68+
69+ internal static string CreateMultiSelect < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( this SqlExpression < T > q , IOrmLiteDialectProvider dialectProvider )
6470 {
6571 var sb = StringBuilderCache . Allocate ( )
6672 . Append ( $ "{ dialectProvider . GetQuotedTableName ( typeof ( T ) . GetModelDefinition ( ) ) } .*, { Sql . EOT } ") ;
@@ -77,6 +83,8 @@ internal static string CreateMultiSelect<T, T2, T3, T4, T5, T6, T7>(this SqlExpr
7783 sb . Append ( $ ", { dialectProvider . GetQuotedTableName ( typeof ( T6 ) . GetModelDefinition ( ) ) } .*, { Sql . EOT } ") ;
7884 if ( typeof ( T7 ) != typeof ( EOT ) )
7985 sb . Append ( $ ", { dialectProvider . GetQuotedTableName ( typeof ( T7 ) . GetModelDefinition ( ) ) } .*, { Sql . EOT } ") ;
86+ if ( typeof ( T8 ) != typeof ( EOT ) )
87+ sb . Append ( $ ", { dialectProvider . GetQuotedTableName ( typeof ( T8 ) . GetModelDefinition ( ) ) } .*, { Sql . EOT } ") ;
8088
8189 return StringBuilderCache . ReturnAndFree ( sb ) ;
8290 }
@@ -126,6 +134,11 @@ internal static List<Tuple<T, T2, T3, T4, T5, T6, T7>> SelectMulti<T, T2, T3, T4
126134 return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 > > ( q . Select ( q . CreateMultiSelect ( tableSelects ) ) . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
127135 }
128136
137+ internal static List < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > > SelectMulti < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > ( this IDbCommand dbCmd , SqlExpression < T > q , string [ ] tableSelects )
138+ {
139+ return dbCmd . ExprConvertToList < Tuple < T , T2 , T3 , T4 , T5 , T6 , T7 , T8 > > ( q . Select ( q . CreateMultiSelect ( tableSelects ) ) . ToSelectStatement ( QueryType . Select ) , q . Params , onlyFields : q . OnlyFields ) ;
140+ }
141+
129142 internal static T Single < T > ( this IDbCommand dbCmd , Expression < Func < T , bool > > predicate )
130143 {
131144 var q = dbCmd . GetDialectProvider ( ) . SqlExpression < T > ( ) ;
0 commit comments