我试图为 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 类中的以下内容更改为 OR 而不是 AND,但我想确认一下。
public SqlBuilder OrWhere(string sql, dynamic parameters = null)
{
AddClause("where", sql, parameters, " AND ", prefix: "WHERE ", postfix: "\n", IsInclusive: true);
return this;
}