Ejemplo n.º 1
0
 private void addJoinItem(SelectBuilder builder, Join join)
 {
     JoinStart start = join as JoinStart;
     if (start == null)
     {
         builder.AddJoin(join);
         return;
     }
     AliasedSource source = start.Source;
     Table table = source.Source as Table;
     if (table != null)
     {
         builder.AddTable(table, source.Alias);
         return;
     }
     ISelectBuilder select = source.Source as SelectBuilder;
     if (select != null)
     {
         builder.AddSelect(select, source.Alias);
         return;
     }
     Function functionCall = source.Source as Function;
     if (functionCall != null)
     {
         builder.AddFunction(functionCall, source.Alias);
         return;
     }
     throw new InvalidOperationException();
 }
Ejemplo n.º 2
0
 public void TestSelect_CrossJoin()
 {
     SelectBuilder builder = new SelectBuilder();
     Join join = Join.From(new Table("Table1"))
         .CrossJoin(new Table("Table2"));
     builder.AddJoin(join);
     builder.AddProjection(new AllColumns());
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "SELECT * FROM Table1 CROSS JOIN Table2";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }
Ejemplo n.º 3
0
 public void TestSelect_LeftOuterJoin()
 {
     SelectBuilder builder = new SelectBuilder();
     Join join = Join.From(new Table("Table1"))
         .LeftOuterJoin(new Table("Table2"))
         .On(j => new EqualToFilter(j.Sources["Table1"].Column("Column"), j.Sources["Table2"].Column("Column")));
     builder.AddJoin(join);
     builder.AddProjection(new AllColumns());
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "SELECT * FROM Table1 LEFT OUTER JOIN Table2 ON Table1.Column = Table2.Column";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }
Ejemplo n.º 4
0
 public void TestSelect_WrappedTable()
 {
     SelectBuilder builder = new SelectBuilder();
     Join join = Join.From(new Table("Table1"))
         .InnerJoin(new Table("Table2"))
         .On(j => new EqualToFilter(j.Sources["Table1"].Column("Column"), j.Sources["Table2"].Column("Column")));
     join.WrapInParentheses = true;
     builder.AddJoin(join);
     builder.AddProjection(builder.Sources["Table1"].Column("Column"));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "SELECT Table1.Column FROM (Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column)";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }