1
我有以下代碼C#:DataStax卡桑德拉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語句會導致嚴重的性能問題,如以下文章中所述:https://lostechies.com/ryansvihla/2014/ 9月22日/卡桑德拉查詢圖案 - 不使用最在查詢換多分區/。 – medvekoma
感謝您的鏈接!從根本上改變我們的查詢對我來說是不可能的。長列表可以批量轉換100個條目。 – bobah75