Requête paramétrée par Dapper et Oracle - ORA-01036: nom / numéro de variable illégal

c# dapper oracle

Question

Je suis en train d'essayer ma main sur Dapper. Le code suivant fonctionne parfaitement:

using (var conn = 
    new OracleConnection(
        "Uid=dbusr;Pwd=dbusrpwd;Server=oraserver;"))
{
    var col = 
        conn.Query<User>(
        "SELECT * FROM Users WHERE UserName = 'uid01'"
        , null)
        .ToList();
}

Mais si, au lieu d'utiliser un paramètre codé en dur, j'essaie de le transmettre via une requête paramétrée plus une classe anonyme, comme ceci:

using (var conn = 
    new OracleConnection(
        "Uid=dbusr;Pwd=dbusrpwd;Server=oraserver;"))
{
    var col = 
        conn.Query<User>(
        "SELECT * FROM Users WHERE UserName = @Id"
        , new { Id = "uid01" })
        .ToList();
}

Je reçois l'erreur suivante:

ORA-01036: nom / numéro de variable illégal

J'ai cherché autour de SO, mais je n'ai trouvé aucun rapport d'erreur similaire; il semble que je manque quelque chose de terriblement évident mais hélas - j'ai manqué de café. J'apprécierais tous les conseils.

Réponse acceptée

Dans le goût de l' oracle de SQL, les paramètres nommés sont préfixées avec : . Essayez :Id au lieu de @Id .




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi