Class SqlQueryDependentParamsAttribute
Used for controlling query caching of custom SQL Functions. Parameter with this attribute will be evaluated on client side before generating SQL.
[AttributeUsage(AttributeTargets.Parameter)]
[Obsolete("Scheduled for removal in v7. The default structural cache-compare path covers the cases this attribute was intended to handle; see https://github.com/linq2db/linq2db/issues/5154.")]
public class SqlQueryDependentParamsAttribute : SqlQueryDependentAttribute, _Attribute
- Inheritance
-
objectSqlQueryDependentParamsAttribute
- Implements
- Inherited Members
- Extension Methods
Remarks
Deprecated; scheduled for removal in v7.
The per-parameter expression compile inside ExpressionsEqual<TContext>(TContext, Expression, Expression, Func<TContext, Expression, Expression, bool>) (and the base ExpressionsEqual<TContext>(TContext, Expression, Expression, Func<TContext, Expression, Expression, bool>)) is unsafe whenever the parameter expression captures outer-scope transparent identifiers, e.g. inside multi-level eager-loaded projections — see https://github.com/linq2db/linq2db/issues/5154. The default structural cache-compare path is sufficient for the cases this attribute was intended to cover.
Methods
ExpressionsEqual<TContext>(TContext, Expression, Expression, Func<TContext, Expression, Expression, bool>)
Compares two expressions during expression tree comparison. Has to be overriden if specific comparison required.
public override bool ExpressionsEqual<TContext>(TContext context, Expression expr1, Expression expr2, Func<TContext, Expression, Expression, bool> comparer)
Parameters
contextTContextexpr1Expressionexpr2ExpressioncomparerFunc<TContext, Expression, Expression, bool>Default function for comparing expressions.
Returns
- bool
Result of comparison
Type Parameters
TContext
SplitExpression(Expression)
Returns sub-expressions, if attribute applied to composite expression.
Default (non-composite) implementation returns expression.
public override IEnumerable<Expression> SplitExpression(Expression expression)
Parameters
expressionExpressionExpression to split.
Returns
- IEnumerable<Expression>
Passed expression of sub-expressions for composite expression.