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(); }
public void TestSelect_FromFunction() { SelectBuilder builder = new SelectBuilder(); builder.AddFunction(new Function("GetData"), "F"); builder.AddProjection(builder.Sources["F"].Column("Column")); Formatter formatter = new Formatter(); string commandText = formatter.GetCommandText(builder); string expected = "SELECT F.Column FROM GetData() F"; Assert.AreEqual(expected, commandText, "The wrong SQL was generated."); }