// - public override DbExpression Visit(DbSubtractExpression exp) { Stack<DbExpression> operands = GatherBinaryExpressionOperand(exp); this.ConcatOperands(operands, " - "); return exp; }
public void Process(DbMethodCallExpression exp, SqlGeneratorBase generator) { DbSubtractExpression dbSubtract = new DbSubtractExpression(exp.Type, exp.Object, exp.Arguments[0]); dbSubtract.Accept(generator); }
// - public override DbExpression Visit(DbSubtractExpression exp) { return(exp); }
bool IsDateSubtract(DbMemberExpression exp) { MemberInfo member = exp.Member; if (member.DeclaringType == PublicConstants.TypeOfTimeSpan) { if (exp.Expression.NodeType == DbExpressionType.Call) { DbMethodCallExpression dbMethodExp = (DbMethodCallExpression)exp.Expression; if (dbMethodExp.Method == PublicConstants.MethodInfo_DateTime_Subtract_DateTime) { int?intervalDivisor = null; if (member == UtilConstants.PropertyInfo_TimeSpan_TotalDays) { intervalDivisor = 24 * 60 * 60 * 1000; goto appendIntervalTime; } if (member == UtilConstants.PropertyInfo_TimeSpan_TotalHours) { intervalDivisor = 60 * 60 * 1000; goto appendIntervalTime; } if (member == UtilConstants.PropertyInfo_TimeSpan_TotalMinutes) { intervalDivisor = 60 * 1000; goto appendIntervalTime; } if (member == UtilConstants.PropertyInfo_TimeSpan_TotalSeconds) { intervalDivisor = 1000; goto appendIntervalTime; } if (member == UtilConstants.PropertyInfo_TimeSpan_TotalMilliseconds) { intervalDivisor = 1; goto appendIntervalTime; } return(false); appendIntervalTime: this.CalcDateDiffPrecise(dbMethodExp.Object, dbMethodExp.Arguments[0], intervalDivisor.Value); return(true); } } else { DbSubtractExpression dbSubtractExp = exp.Expression as DbSubtractExpression; if (dbSubtractExp != null && dbSubtractExp.Left.Type == PublicConstants.TypeOfDateTime && dbSubtractExp.Right.Type == PublicConstants.TypeOfDateTime) { DbMethodCallExpression dbMethodExp = new DbMethodCallExpression(dbSubtractExp.Left, PublicConstants.MethodInfo_DateTime_Subtract_DateTime, new List <DbExpression>(1) { dbSubtractExp.Right }); DbMemberExpression dbMemberExp = DbExpression.MemberAccess(member, dbMethodExp); dbMemberExp.Accept(this); return(true); } } } return(false); }
// - public override DbExpression Visit(DbSubtractExpression exp) { return(exp.Accept(this._generator)); }
// - public abstract T Visit(DbSubtractExpression exp);