6

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でできることは知っていますが、型の安全性と方言の独立性を失いたくないので、それはオプションではありません。

4

1 に答える 1