Sie würden die Spalten basierend auf den im Join enthaltenen Tabellen bereitstellen. Zum Beispiel, wenn Sie Tabelle Trans und Tabelle UserTrans auf TransId anschließen, Ihre Aussage etwas entlang der Linien der folgenden sein würde:
SubSonic.SqlQuery query = DB.Select()
.From(Trans.Schema)
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
Nach dem SubSonic Simple Query Tool Docs, haben Sie drei Möglichkeiten, wenn es darum geht, nach links Outer Joins :
Mit Generics Registriert links außen
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From<Customer>()
.LeftOuterJoin<Order>();
Mit Schema Registriert links außen
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From(Customer.Schema)
.LeftOuterJoin(Order.CustomerIDColumn, Customer.CustomerIDColumn);
Left Outer Join mit magischem Strings
SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName"))
.From("Customers")
.LeftOuterJoin("Orders");
Es scheint, Sie favorisieren "Left Outer Join Mit Schema." Beachten Sie jedoch, dass jede der oben genannten Optionen eine SubSonic SqlQuery-Referenz zurückgibt. Ich bin mir nicht sicher, ob Sie das tun können, was Sie hoffen, eine Liste von Tran mit der LeftOuterJoin-Syntax zurückgeben. Vielleicht möchten Sie die Dokumente dazu weiter konsultieren.
UPDATE:
Per Ihren Kommentar, ich denke, wir Sie näher kommen können, was Sie wollen. Das .LeftOuterJoin-Objekt schließt Argumente des Typs TableSchema.TableColumn aus und Sie können eine allgemeine Liste erstellen, indem Sie .ExecuteTypedList <> an die Auswahl anhängen.
List<Tran> result = DB.Select()
.From<Trans>()
// parameters are of type TableSchema.TableColumn
.LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn);
.ExecuteTypedList<Tran>();
Danke für die Rückmeldung. Ich denke, ich war darüber bestürzt, dass meine Tabellenobjekte in 3.0.0.3 keine Schema-Eigenschaften haben und ich auch keine Spaltenreferenzen vom Typ IColumn finden kann. Ich finde die einzige Methode, die in Version 3 funktioniert, ist die, die Generics verwendet. Das Referenzdokument scheint sich nur vollständig auf Version 2 zu beziehen. Danke, dass Sie mich in die richtige Richtung weisen. – jcomet
@jcomet - Bitte sehen Sie meine Aktualisierungen inline mit meiner Antwort. Viel Glück. –
Danke nochmal Ben, du warst sehr hilfreich. Ich denke jedoch, dass Ihre Beispiele für 2. *, aber nicht für 3. * korrekt sind. Meine LeftOuterJoin-Argumenttypen sind SubSonic.Schema.IColumn. Vielleicht ist meine Konfiguration falsch. – jcomet