Skip to main content
 首页 » 编程设计

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

2024年04月18日36mayingbao

我有以下 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); 

这种方法行得通。 但也许有人知道更优雅的解决方案?

请您参考如下方法:

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

例如:

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