是否有可能做到这一点构建此查询与小巧玲珑的?(Is it possible to do this b

2019-10-22 07:23发布

是否有可能做执行以下操作? 我试过了,但是当它到了查询,它只是说,有一个空引用。

   var builder = new StringBuilder("select * from my table1 where 1 = 1");

if(x==1)
    builder.Append(" and x = @x");

if(y==2)
    builder.Append(" and y = @y");

// when it gets here, it just says null reference

 db.Query<table1>(builder.ToString(), new {x,y});

我SqlBuilder在.NET 3.5上运行,但是当我这样做:

var builder = new SqlBuilder();

var sql = builder.AddTemplate("select * from table /**where**/ /**orderby**/");

 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 )

Answer 1:

据推测,这是由于这个bug 。 尝试的修复是在2016年7月31日作出但是仍然有问题,这种方法。 该计划是,这将是固定的下一个主要版本。



文章来源: Is it possible to do this build this query with Dapper?