public void BuildWhereIn <T>(MemberNode node, SqlInType type, IQuery <T> sql) { string sqlString = sql.GetSql(); var parameters = sql.GetParameters(); foreach (var param in parameters) { //var innerParamKey = "Inner" + param.Key; //innerQuery = Regex.Replace(innerQuery, param.Key, innerParamKey); AddParameter(param.Key, param.Value); } string fieldName = this.GetFieldName(node.TableName, node.FieldName); string op = type == SqlInType.IN ? InSymbol : NotInSymbol; var condition = string.Format("{0} {1} ({2})", fieldName, op, sqlString); this.AppendCondition(condition); }
public void ResolveWhereIn <T, TKey, TResult>(SqlInType type, Expression <Func <T, TKey> > expression, IQuery <TResult> sql, bool andOr) { builder.PartType = SqlPartType.Where; var member = ExpressionHelper.GetMemberExpression(expression.Body); if (member != null) { if (andOr) { builder.And(); } else { builder.Or(); } var node = new MemberNode(member); builder.BuildWhereIn(node, type, sql); } }
public void ResolveWhereIn <T, TKey>(SqlInType type, Expression <Func <T, TKey> > expression, IEnumerable <object> values, bool andOr) { builder.PartType = SqlPartType.Where; var member = ExpressionHelper.GetMemberExpression(expression.Body); if (member != null) { if (andOr) { builder.And(); } else { builder.Or(); } InNode node = new InNode(type, new MemberNode(member), values); builder.BuildWhere(node); } }
public InNode(SqlInType type, MemberNode node, IEnumerable <object> values) { this.Type = type; this.Node = node; this.Values = values; }