protected virtual DbExpression VisitUpdateExpression(DbUpdateExpression updateExpression)
{
var targetExpression = Visit(updateExpression.Target);
var fromExpression = Visit(updateExpression.FromExpression);
var setExpression = Visit(updateExpression.SetExpression);
var whereExpression = Visit(updateExpression.WhereExpression);
if (!ReferenceEquals(targetExpression,updateExpression.Target))
updateExpression.Target = targetExpression;
if (!ReferenceEquals(fromExpression, updateExpression.FromExpression))
updateExpression.FromExpression = fromExpression;
if (!ReferenceEquals(setExpression, updateExpression.SetExpression))
updateExpression.SetExpression = setExpression;
if (!ReferenceEquals(whereExpression, updateExpression.WhereExpression))
updateExpression.WhereExpression= whereExpression;
return updateExpression;
}