private DbExpression TranslateLambda(LambdaExpression lambda, DbExpression input)
{
var scopeBinding = new Binding(lambda.Parameters[0], input);
// push the binding scope
_bindingContext.PushBindingScope(scopeBinding);
// translate expression within this binding scope
#if DEBUG
var preValue = _ignoreInclude;
#endif
_ignoreInclude++;
var result = TranslateExpression(lambda.Body);
_ignoreInclude--;
#if DEBUG
Debug.Assert(preValue == _ignoreInclude);
#endif
// pop binding scope
_bindingContext.PopBindingScope();
return result;
}