Dapper 用に SqlBuilder の Where メソッドと OrWhere メソッドを使用しようとしましたが、期待どおりに動作しません。
この質問の編集された部分は、基本的に私が遭遇したものです。返事がないのでこちらで質問させていただきます。
var builder = new SqlBuilder();
var sql = builder.AddTemplate("select * from table /**where**/ ");
builder.Where("a = @a", new { a = 1 })
.OrWhere("b = @b", new { b = 2 });
期待したselect * from table WHERE a = @a OR b = @b
しかし、私は得ましたselect * from table WHERE a = @a AND b = @b
SqlBuilder を使用して where 句に OR を追加する方法はありますか?
SqlBuilder クラスの以下を AND ではなく OR に変更するだけの問題だと思いますが、確認したかったのです。
public SqlBuilder OrWhere(string sql, dynamic parameters = null)
{
AddClause("where", sql, parameters, " AND ", prefix: "WHERE ", postfix: "\n", IsInclusive: true);
return this;
}