Beispiel #1
0
        private SingleEntityNode EntityParameter <T>(string name)
        {
            var entityRangeVariable = new EntityRangeVariable(name, new EdmEntityTypeReference(this.entitySet.EntityType(), false), this.entitySet);

            entityRangeVariable.SetAnnotation(Expression.Parameter(typeof(T), name));
            return(new EntityRangeVariableReferenceNode(name, entityRangeVariable));
        }
Beispiel #2
0
        private void TestLambda <TLambda, TParam, TReturn>(CollectionNode source, string parameterName, SingleValueNode body, Expression <Func <TParam, TReturn> > expectedExpression)
            where TLambda : LambdaNode
        {
            EntityRangeVariable currentRangeVariable = null;

            if (parameterName != null)
            {
                currentRangeVariable = new EntityRangeVariable(parameterName, new EdmEntityTypeReference(this.customerEdmType, false), this.entitySet);
                currentRangeVariable.SetAnnotation(Expression.Parameter(typeof(TParam), parameterName));
            }

            LambdaNode node;

            if (typeof(TLambda) == typeof(AnyNode))
            {
                node = new AnyNode(new Collection <RangeVariable>(), currentRangeVariable);
            }
            else
            {
                node = new AllNode(new Collection <RangeVariable>(), currentRangeVariable);
            }

            node.Body   = body;
            node.Source = source;

            var result = this.testSubject.TranslateNode(node);

            CompareExpressions(expectedExpression.Body, result);
        }