Paramètre Oracle Dapper.net

dapper oracle

Question

J'essaie d'utiliser Dapper.net avec Oracle.

A partir de cet article, j'ai compris que nous pouvions utiliser des paramètres sans préfixes et que dapper fonctionnerait alors à la fois pour sql server et oracle

J'ai du mal à le faire fonctionner sans le préfixe explicite des paramètres nommés oracle :

La requête suivante

sqlConnection.Query("Select * FROM document WHERE id = param1", new { param1 = 963 });

Lance ORA-00904: "PARAM1": invalid identifier

Si j'essaie avec le préfixe @ il jette ORA-00936: missing expression

Si j'utilise le préfixe : cela fonctionne comme prévu. Mais je ne veux pas que mes requêtes soient dépendantes (autant que possible) d’Oracle ou de SQL Server .

J'utilise la dernière version du package nuget Dapper.dll 1.12.1.1

Qu'est-ce que je fais mal ou est-ce que j'ai mal compris ce post ?

Réponse acceptée

Oui, vous avez mal compris le post. Le SQL est passé à travers en l' état , et doit contenir le bon :param1 ou @param1 etc. « aucun préfixe du tout » parle du code que vous ne voyez pas - en particulier, faire en sorte que le code ne (via un mécanisme):

cmd.Parameters.Add("param1", 963);

contre

cmd.Parameters.Add("@param1", 963);

contre

cmd.Parameters.Add(":param1", 963);

Le premier (pas de préfixe) est l'option correcte et préférée.

Si vous souhaitez que le code SQL de votre code soit indépendant du paramètre, vous pouvez utiliser les informations suivantes: Obtenir le préfixe de paramètre dans ADO.NET

Le SQL est rarement assez proche, cependant, le simple fait de rechercher le préfixe du paramètre résoudra tous les problèmes.



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