Ejemplo n.º 1
0
        private string Build(int paramCount, IExpressionBodyParser parser)
        {
            if (parser != null)
            {
                if (!parser.IsComplex)
                {
                    Table table = parser.Entity.GetTable();

                    Field field = null;
                    if (parser.Field.BindedTo != null)
                    {
                        field = table.FindFieldByBind(parser.Field.BindedTo);
                    }

                    return String.Format("{0} In (Select {1} From {2}",
                                         parser.Field.FieldName,
                                         field != null ? parser.Field.BindedTo : parser.Field.FieldName,
                                         table.TableName);
                }

                var simple = new SimpleWhereTSqlBuilder();
                simple.CanBuild(parser);

                string result = String.Format(" Where {0} )", simple.Build(paramCount));

                foreach (var param in simple.Parameters)
                {
                    _parameters.Add(param);
                }
                return Build(paramCount, parser.Next) + result;
            }

            return "";
        }
Ejemplo n.º 2
0
 protected override Boolean CanBuildSql(IExpressionBodyParser parser)
 {
     return !parser.IsComplex;
 }
Ejemplo n.º 3
0
 protected abstract bool CanBuildSql(IExpressionBodyParser parser);
Ejemplo n.º 4
0
 protected override bool CanBuildSql(IExpressionBodyParser parser)
 {
     return parser.IsComplex;
 }
Ejemplo n.º 5
0
 public bool CanBuild(IExpressionBodyParser parser)
 {
     _Parser = parser;
     return CanBuildSql(parser);
 }