Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 public InNode(SqlInType type, MemberNode node, IEnumerable <object> values)
 {
     this.Type   = type;
     this.Node   = node;
     this.Values = values;
 }