protected internal override Expression VisitTypeImplementedBy(TypeImplementedByExpression typeIb) { return(typeIb.TypeImplementations.Reverse().Aggregate((Expression)NullType, (acum, imp) => Expression.Condition( Expression.NotEqual(Visit(NullifyColumn(imp.Value)), NullId), Expression.Constant(imp.Key, typeof(Type)), acum))); }
protected internal virtual Expression VisitTypeImplementedBy(TypeImplementedByExpression typeIb) { var implementations = Visit(typeIb.TypeImplementations, eid => (PrimaryKeyExpression)Visit(eid)); if (implementations != typeIb.TypeImplementations) { return(new TypeImplementedByExpression(implementations)); } return(typeIb); }