【发布时间】:2015-10-05 04:24:06
【问题描述】:
我试图为 Dapper 使用 SqlBuilder 的 Where 和 OrWhere 方法,但它的行为不像我期望的那样。
this question 的编辑部分基本上是我遇到的。由于没有收到回复,我就在这里问一下。
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;
}
【问题讨论】:
标签: dapper sqlbuilder