public static IMySqlSpecificQueryable<TSource> QueryHint<TSource>(this IMySqlSpecificQueryable<TSource> source, [SqlQueryDependent] string hint) where TSource : notnull { var currentSource = LinqExtensions.ProcessSourceQueryable?.Invoke(source) ?? source; return new MySqlSpecificQueryable<TSource>(currentSource.Provider.CreateQuery<TSource>( Expression.Call( null, MethodHelper.GetMethodInfo(QueryHint, source, hint), currentSource.Expression, Expression.Constant(hint)))); }
public static IMySqlSpecificQueryable<TSource> QueryHint<TSource, TParam>( this IMySqlSpecificQueryable<TSource> source, [SqlQueryDependent] string hint, [SqlQueryDependent] params TParam[] hintParameters) where TSource : notnull { var currentSource = LinqExtensions.ProcessSourceQueryable?.Invoke(source) ?? source; return new MySqlSpecificQueryable<TSource>(currentSource.Provider.CreateQuery<TSource>( Expression.Call( null, MethodHelper.GetMethodInfo(QueryHint, source, hint, hintParameters), currentSource.Expression, Expression.Constant(hint), Expression.NewArrayInit(typeof(TParam), hintParameters.Select(p => Expression.Constant(p)))))); }
public static IMySqlSpecificQueryable<TSource> NoSemiJoinHintWithQueryBlock<TSource>(this IMySqlSpecificQueryable<TSource> query, params string[] values) where TSource : notnull { return QueryBlockHint(query, Query.NoSemiJoin, values); }