Est-il possible de faire cela construire cette requête avec Dapper?

.net-3.5 c# dapper

Question

Est-il possible de faire ce qui suit? J'ai essayé, mais quand il est arrivé à la requête, il a juste dit qu'il y avait une référence nulle.

   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});

J'ai fait fonctionner SqlBuilder dans .net 3.5, mais quand je fais ceci:

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 });

Je m'attendais à select * from table WHERE a = @a OR ( b = @b )

mais j'ai:

Je m'attendais à select * from table WHERE a = @a AND ( b = @b )

Réponse populaire

Vraisemblablement, c'était dû à ce bug . La tentative de correction a eu lieu le 31 juillet 2016, mais cette approche présente toujours des problèmes . Le plan est que cela serait corrigé dans la prochaine version majeure.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi