Với SubSonic 2, bạn không thể.
Điều này cho biết, bạn có các lựa chọn thay thế sau:
Mở rộng SubSonic
Nếu bạn đã quen thuộc với SubSonic, bạn có thể cân nhắc thêm các phép nối nhiều cột vào chính SubSonic.
Sử dụng dạng xem, thủ tục được lưu trữ, hàm bảng
Nếu bạn không muốn gây rối với mã SubSonics, hãy sử dụng các dạng xem, thủ tục được lưu trữ và / hoặc các hàm bảng trong máy chủ sql. SubSonic giúp dễ dàng truy cập dữ liệu từ các chế độ xem và các thủ tục được lưu trữ.
Sử dụng InlineQuery
InlineQuery cho phép bạn thực thi bất kỳ sql nào - nếu đó là một tùy chọn để có sql trống trong mã của bạn.
Giải pháp xấu với InlineQuery
Nếu bạn thực sự muốn tạo truy vấn của mình với SubSonic, bạn có thể thử cách này:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
Xây dựng câu lệnh SQL và thay thế tên tham số:
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);
Sau đó, sử dụng s với một InlineQuery.