protected internal virtual Expression VisitAdditionalField(AdditionalFieldExpression ml) { var newBackID = (PrimaryKeyExpression)Visit(ml.BackID); if (newBackID != ml.BackID) { return(new AdditionalFieldExpression(ml.Type, newBackID, ml.Route)); } return(ml); }
protected internal virtual Expression VisitAdditionalField(AdditionalFieldExpression ml) { var newBackID = (PrimaryKeyExpression)Visit(ml.BackID); var externalPeriod = (NewExpression)Visit(ml.ExternalPeriod); if (newBackID != ml.BackID || externalPeriod != ml.ExternalPeriod) { return(new AdditionalFieldExpression(ml.Type, newBackID, externalPeriod, ml.Route)); } return(ml); }
protected internal override Expression VisitAdditionalField(AdditionalFieldExpression afe) { var exp = binder.BindAdditionalField(afe, entityCompleter: true); var newEx = this.Visit(exp); if (newEx is ProjectionExpression newProj && newProj.Projector.Type.IsInstantiationOf(typeof(MList <> .RowIdElement))) { return(new MListProjectionExpression(afe.Type, newProj)); } return(newEx); }
protected virtual bool CompareMList(AdditionalFieldExpression a, AdditionalFieldExpression b) { return(a.Route.Equals(b.Route) && Compare(a.BackID, b.BackID)); }