Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
 }