С SubSonic 2 от кутията не можете.
Това каза, че имате следните алтернативи:
Разширете SubSonic
Ако вече сте запознати с SubSonic, може да помислите да добавите свързвания с няколко колони към самия SubSonic.
Използвайте изгледи, съхранени процедури, таблични функции
Ако не искате да се забърквате с кода на SubSonics, използвайте изгледи, съхранени процедури и/или таблични функции в sql сървъра. SubSonic улеснява достъпа до данни от изгледи и съхранени процедури.
Използвайте InlineQuery
InlineQuery ви позволява да изпълнявате произволен sql - ако е опция да имате гол sql във вашия код.
Грозно решение с InlineQuery
Ако абсолютно искате да създадете своята заявка с SubSonic, можете да опитате това:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
Създайте SQL израза и заменете имената на параметрите:
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);
След това използвайте s с InlineQuery.