Dapper sql查询List <string>上的内连接

时间:2016-06-14 19:21:45

标签: c# dapper

我正在尝试运行以下查询但收到错误。

conn.Query("select d.ID, d.CategoryID from Document d inner join @Cases c on d.CaseID = c.ID", new { Cases = new List<string> { "000-6575-101", "5902-205" }});

当我运行命令时,我收到Incorrect syntax near ','.

我的问题是,甚至可以做一些像我在做的事情吗?

1 个答案:

答案 0 :(得分:4)

Dapper支持此方案的in语法:

var ids = new List<string> { "000-6575-101", "5902-205" };
conn.Query("select d.ID, d.CategoryID from Document d where d.CaseID in @ids", new { ids});

这是少数情况下,dapper实际上会更改您的查询以执行您想要的操作(同时保持完全参数化等)。

它还支持(可选,请参阅SqlMapper.Settings):

  • 参数填充以减少查询计划缓存饱和度
  • 在SQL 2016上使用string_split表示整数类型(List<int>等)