public bool Evaluate(EntitySession session, object entity) { var args = new object[Lambda.Parameters.Count]; args[0] = entity; for (int i = 1; i < Lambda.Parameters.Count; i++) { args[i] = session.EvaluateLambdaParameter(Lambda.Parameters[i]); } var result = CompiledLambda.DynamicInvoke(args); return((bool)result); }
public void EvaluateLocalValues(EntitySession session) { Util.Check(session != null, "LINQ: Cannot evaluate query parameters, entity session not attached."); //We proceed in 2 steps: // 1. We evaluate external parameters (used in lambdas in authorization filters and QueryFilters); // values are in current OperationContext // 2. Evaluate local expressions which become final query parameters; they may depend on external params var extParamArray = Info.ExternalParameters.ToArray(); var extParamValues = new object[extParamArray.Length]; for (int i = 0; i < extParamArray.Length; i++) extParamValues[i] = session.EvaluateLambdaParameter(extParamArray[i]); //Evaluate local expressions ParameterValues = new object[Locals.Count]; for (int i = 0; i < Locals.Count; i++ ) ParameterValues[i] = ExpressionHelper.Evaluate(Locals[i], extParamArray, extParamValues); }
public void EvaluateLocalValues(EntitySession session) { Util.Check(session != null, "LINQ: Cannot evaluate query parameters, entity session not attached."); //We proceed in 2 steps: // 1. We evaluate external parameters (used in lambdas in authorization filters and QueryFilters); // values are in current OperationContext // 2. Evaluate local expressions which become final query parameters; they may depend on external params var extParamArray = Info.ExternalParameters.ToArray(); var extParamValues = new object[extParamArray.Length]; for (int i = 0; i < extParamArray.Length; i++) extParamValues[i] = session.EvaluateLambdaParameter(extParamArray[i]); //Evaluate local expressions ParameterValues = new object[Locals.Count]; for (int i = 0; i < Locals.Count; i++ ) ParameterValues[i] = ExpressionHelper.Evaluate(Locals[i], extParamArray, extParamValues); }