Dapper AddDynamicParams dla instrukcji IN z „dynamiczną” nazwą parametru
Mam prosty ciąg SQL, taki jak ten:
"SELECT * FROM Office WHERE OfficeId IN @Ids"
Chodzi o to, że nazwa @Ids jest wprowadzana w edytorze, więc może być czymkolwiek, a moim problemem jest to, że jeśli chcę przekazać, powiedzmy tablicę liczb całkowitych, to działa tylko z Dapperem, gdy używam:
var values = new DynamicParameters();
values.AddDynamicParams(new { Ids = new[] { 100, 101 } });
Ale to wymaga ode mnie, ŻE WIEM, że nazwa parametru toIds
i tak nie jest w moim scenariuszu.
Mogę ustawić „dynamiczny parametr” w Dapperie z „dynamiczną” nazwą w następujący sposób:
var values = new DynamicParameters();
values.Add("Ids", new[] { 100, 101 });
Ale wtedy Dapper nie budujeIN (....)
SQL z oddzielnymi parametrami dla każdej wartości.
Czy istnieje sposób skonstruowania dynamicznego obiektu przekazywanego doAddDynamicParams
ale ustawienie nazwy członka i wartości bez wcześniejszego poznania nazwy?
Mógłbym zmodyfikować źródło Dappera, aby działało w moim scenariuszu, ale jeśli ktoś zna prostsze i bardziej eleganckie rozwiązanie tego problemu, byłbym wdzięczny!