Med SubSonic 2 ud af æsken kan du ikke.
Når det er sagt, har du følgende alternativer:
Udvid SubSonic
Hvis du allerede er bekendt med SubSonic, kan du overveje at tilføje multi-column joins til selve SubSonic.
Brug visninger, lagrede procedurer, tabelfunktioner
Hvis du ikke vil rode med SubSonics-kode, skal du bruge visninger, lagrede procedurer og/eller tabelfunktioner i sql-serveren. SubSonic gør det nemt at få adgang til data fra visninger og lagrede procedurer.
Brug en InlineQuery
InlineQuery giver dig mulighed for at udføre enhver sql - hvis det er en mulighed at have bare sql i din kode.
Glædelig løsning med InlineQuery
Hvis du absolut vil oprette din forespørgsel med SubSonic, kan du prøve dette:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
Byg SQL-sætningen, og erstat parameternavnene:
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);
Brug derefter s med en InlineQuery.