Beispiel #1
0
        public static ISqlServerSpecificQueryable <TSource> QueryHint <TSource>(this ISqlServerSpecificQueryable <TSource> source, [SqlQueryDependent] string hint)
            where TSource : notnull
        {
            var currentSource = LinqExtensions.ProcessSourceQueryable?.Invoke(source) ?? source;

            return(new SqlServerSpecificQueryable <TSource>(currentSource.Provider.CreateQuery <TSource>(
                                                                Expression.Call(
                                                                    null,
                                                                    MethodHelper.GetMethodInfo(QueryHint, source, hint),
                                                                    currentSource.Expression, Expression.Constant(hint)))));
        }
Beispiel #2
0
        public static ISqlServerSpecificQueryable <TSource> OptionUseHint <TSource>(
            this ISqlServerSpecificQueryable <TSource> source,
            [SqlQueryDependent] params string[]       values)
            where TSource : notnull
        {
            var currentSource = LinqExtensions.ProcessSourceQueryable?.Invoke(source) ?? source;

            return(new SqlServerSpecificQueryable <TSource>(currentSource.Provider.CreateQuery <TSource>(
                                                                Expression.Call(
                                                                    null,
                                                                    MethodHelper.GetMethodInfo(OptionUseHint, source, values),
                                                                    currentSource.Expression,
                                                                    Expression.NewArrayInit(typeof(string), values.Select(Expression.Constant))))));
        }
Beispiel #3
0
        public static ISqlServerSpecificQueryable <TSource> QueryHint <TSource, TParam>(
            this ISqlServerSpecificQueryable <TSource> source,
            [SqlQueryDependent] string hint,
            [SqlQueryDependent] params TParam[] hintParameters)
            where TSource : notnull
        {
            var currentSource = LinqExtensions.ProcessSourceQueryable?.Invoke(source) ?? source;

            return(new SqlServerSpecificQueryable <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)))))));
        }
Beispiel #4
0
 public static ISqlServerSpecificQueryable <TSource> OptionDisableScaleOutExecution <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint2019Plus(Query.DisableScaleOutExecution));
 }
Beispiel #5
0
 public static ISqlServerSpecificQueryable <TSource> WithHoldLockInScope <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.TablesInScopeHint(Table.HoldLock));
 }
Beispiel #6
0
 public static ISqlServerSpecificQueryable <TSource> OptionDisableExternalPushDown <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.DisableExternalPushDown));
 }
Beispiel #7
0
 public static ISqlServerSpecificQueryable <TSource> OptionForceOrder <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.ForceOrder));
 }
Beispiel #8
0
 public static ISqlServerSpecificQueryable <TSource> OptionQueryTraceOn <TSource>(this ISqlServerSpecificQueryable <TSource> query, int value)
     where TSource : notnull
 {
     return(query.QueryHint(Query.QueryTraceOn(value)));
 }
Beispiel #9
0
 public static ISqlServerSpecificQueryable <TSource> OptionNoPerformanceSpool <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint2019Plus(Query.NoPerformanceSpool));
 }
Beispiel #10
0
 public static ISqlServerSpecificQueryable <TSource> OptionHashGroup <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.HashGroup));
 }
Beispiel #11
0
 public static ISqlServerSpecificQueryable <TSource> JoinRemoteHint <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.JoinHint(Join.Remote));
 }
Beispiel #12
0
 public static ISqlServerSpecificQueryable <TSource> WithSnapshotInScope <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.TablesInScopeHint2014Plus(Table.Snapshot));
 }
Beispiel #13
0
 public static ISqlServerSpecificQueryable <TSource> WithSerializableInScope <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.TablesInScopeHint(Table.Serializable));
 }
Beispiel #14
0
 public static ISqlServerSpecificQueryable <TSource> WithRepeatableReadInScope <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.TablesInScopeHint(Table.RepeatableRead));
 }
Beispiel #15
0
 public static ISqlServerSpecificQueryable <TSource> WithForceScanInScope <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.TablesInScopeHint2012Plus(Table.ForceScan));
 }
Beispiel #16
0
 public static ISqlServerSpecificQueryable <TSource> OptionIgnoreNonClusteredColumnStoreIndex <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint2012Plus(Query.IgnoreNonClusteredColumnStoreIndex));
 }
Beispiel #17
0
 public static ISqlServerSpecificQueryable <TSource> OptionMinGrantPercent <TSource>(this ISqlServerSpecificQueryable <TSource> query, int value)
     where TSource : notnull
 {
     return(query.QueryHint2016Plus(Query.MinGrantPercent(value)));
 }
Beispiel #18
0
 public static ISqlServerSpecificQueryable <TSource> OptionConcatUnion <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.ConcatUnion));
 }
Beispiel #19
0
 public static ISqlServerSpecificQueryable <TSource> OptionOptimizeForUnknown <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint2008Plus(Query.OptimizeForUnknown));
 }
Beispiel #20
0
 public static ISqlServerSpecificQueryable <TSource> OptionMergeJoin <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.MergeJoin));
 }
Beispiel #21
0
 public static ISqlServerSpecificQueryable <TSource> OptionRobustPlan <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.RobustPlan));
 }
Beispiel #22
0
 public static ISqlServerSpecificQueryable <TSource> OptionExpandViews <TSource>(this ISqlServerSpecificQueryable <TSource> query)
     where TSource : notnull
 {
     return(query.QueryHint(Query.ExpandViews));
 }