IMO, prawidłowe podejście to nie aby (zgodnie z zaakceptowaną odpowiedzią) użyć prefiksu parametru specyficznego dla bazy danych (więc @ dla serwera sql, : dla oracle) - ale raczej:nie używaj przedrostka w ogóle . Więc ostatecznie jest to:
il.Emit(OpCodes.Ldstr, prop.Name);
(itd.)
W szczególności static właściwość byłaby zła, ponieważ ograniczałaby Cię do jednego dostawcy na AppDomain .
Dapper został zaktualizowany tą zmianą. Teraz również dynamicznie wykrywa BindByName i odpowiednio ją ustawia (wszystko bez potrzeby odwołania do OracleCommand ).