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);
次に、InlineQueryでsを使用します。