S SubSonic 2 po vybalení nemůžete.
To znamená, že máte následující alternativy:
Rozšířit SubSonic
Pokud již SubSonic znáte, můžete zvážit přidání vícesloupcových spojení do samotného SubSonic.
Používejte pohledy, uložené procedury, tabulkové funkce
Pokud si nechcete zahrávat s kódem SubSonics, použijte pohledy, uložené procedury a/nebo tabulkové funkce na serveru SQL. SubSonic usnadňuje přístup k datům z pohledů a uložených procedur.
Použijte vložený dotaz
InlineQuery umožňuje spouštět libovolné sql - pokud je to možnost mít v kódu holé sql.
Ošklivé řešení s InlineQuery
Pokud bezpodmínečně chcete vytvořit svůj dotaz pomocí SubSonic, můžete zkusit toto:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
Sestavte příkaz SQL a nahraďte názvy parametrů:
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);
Poté použijte s s InlineQuery.