DataStax Cassandra C#驱动程序:带有集合参数的WHERE IN(?)查询

本文关键字:IN WHERE 查询 参数 集合 Cassandra 驱动程序 DataStax | 更新日期: 2023-09-27 17:58:32

我有以下代码C#:

IMapper mapper = new Mapper(session);
//...
var names = new [] {"n1", "n2", "n3"};
//Generation of question marks   
var inStr = string.Join(",", names.Select(n=>"?"));
var users = mapper.Fetch<User>($"SELECT * FROM users WHERE name IN ({inStr})", names);

这种方法行之有效。但也许有人知道一个更优雅的解决方案?

DataStax Cassandra C#驱动程序:带有集合参数的WHERE IN(?)查询

若要在单个参数中提供值的动态列表,请在查询中使用in运算符,后跟不带括号的问号占位符。

例如:

var names = new [] {"n1", "n2", "n3"};
var users = mapper.Fetch<User>("SELECT * FROM users WHERE name IN ?", names);