Mit SubSonic 2 ist das nicht möglich.
Vor diesem Hintergrund haben Sie folgende Alternativen:
SubSonic verlängern
Wenn Sie bereits mit SubSonic vertraut sind, können Sie in Betracht ziehen, SubSonic selbst mehrspaltige Verknüpfungen hinzuzufügen.
Verwenden Sie Ansichten, gespeicherte Prozeduren, Tabellenfunktionen
Wenn Sie nicht mit SubSonics-Code herumspielen wollen, verwenden Sie Ansichten, gespeicherte Prozeduren und/oder Tabellenfunktionen innerhalb von SQL Server. SubSonic erleichtert den Zugriff auf Daten aus Ansichten und gespeicherten Prozeduren.
Verwenden Sie eine InlineQuery
InlineQuery ermöglicht es Ihnen, jedes SQL auszuführen - wenn es eine Option ist, reines SQL in Ihrem Code zu haben.
Hässlicher Workaround mit InlineQuery
Wenn Sie Ihre Abfrage unbedingt mit SubSonic erstellen möchten, können Sie Folgendes versuchen:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
Erstellen Sie die SQL-Anweisung und ersetzen Sie die Parameternamen:
string s = q.BuildSqlStatement();
s = s.Replace(q.Constraints[0].ParameterName, TableB.YearColumn.QualifiedName);
s = s.Replace(q.Constraints[1].ParameterName, TableB.MonthColumn.QualifiedName);
s = s.Replace(q.Constraints[2].ParameterName, TableB.UserIdColumn.QualifiedName);
Verwenden Sie dann s mit einer InlineQuery.