public override DbExpression Visit(DbRelationshipNavigationExpression expression) { EntityUtil.CheckArgumentNull(expression, "expression"); DbExpression result = expression; RelationshipEndMember newFrom; RelationshipEndMember newTo; VisitRelationshipEnds(expression.NavigateFrom, expression.NavigateTo, out newFrom, out newTo); DbExpression newNavSource = this.VisitExpression(expression.NavigationSource); if (!object.ReferenceEquals(expression.NavigateFrom, newFrom) || !object.ReferenceEquals(expression.NavigateTo, newTo) || !object.ReferenceEquals(expression.NavigationSource, newNavSource)) { result = CqtBuilder.Navigate(newNavSource, newFrom, newTo); } NotifyIfChanged(expression, result); return(result); }