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)); }
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); }