You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Dapper Extensions Predicate实现IN子句?

使用Dapper Extensions Predicate实现IN查询

嘿,这个问题我熟!你要找的Operator就是Operator.In,专门用来处理IN查询场景的。另外给你提个小细节:using语句会自动帮你管理连接的生命周期,所以不需要手动调用cn.Close(),代码会更简洁安全。

修正后的完整代码如下:

using (SqlConnection cn = new SqlConnection(_connectionString)) 
{ 
    cn.Open(); 
    var predicate = Predicates.Field<SomeTable>(f => f.Id, Operator.In, commaSeparatedListOfIDs); 
    IEnumerable<SomeTable> list = cn.GetList<SomeTable>(predicate); 
}

关键注意点:

  • 确保commaSeparatedListOfIDs是整数类型的IEnumerable集合(比如List<int>、int[]这类),这样Dapper Extensions才能正确解析并生成对应的IN子句。
  • 这段代码最终会生成参数化的SQL:SELECT * FROM SomeTable WHERE id IN (@p0, @p1, ...),自动帮你处理参数,完全避免SQL注入的风险,比手动拼接字符串靠谱多了。

内容的提问来源于stack exchange,提问作者DanielGatti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:40:13