ServiceStack.OrmLite の JoinSqlBuilder で次の単純なクエリを作成できるかどうか疑問に思っています。
SELECT * FROM Table1 a
INNER JOIN Table2 b ON ...
WHERE a.Column1 = 1 AND (a.Column2 = 2 OR b.Column3 = 3);
問題は、(a.Column2 = 2 OR b.Column3 = 3)
パーツを作成することです。JoinSqlBuilder にはWhere<T>, And<T>, Or<T>
、クエリの条件を追加できるメソッドのリストがあります。
たとえば、次のようにします。
builder
.Join(...)
.Where<Table1Poco>(a => a.Column1 == 1)
.And<Table1Poco>(a => a.Column2 == 2)
.Or<Table2Poco>(a => a.Column3 == 3)
...;
私は手に入れます:
... WHERE a.Column1 = 1 AND a.Column2 = 2 OR b.Column3 = 3;
a.Column1 = 1 AND (a.Column2 = 2 OR b.Column3 = 3)
ServiceStack.OrmLiteでビルドする方法はありますか?
生のSQLでできることは知っていますが、型の安全性と方言の独立性を失いたくないので、それはオプションではありません。