Ich versuche gerade meine Hand auf Dapper. Der folgende Code funktioniert einwandfrei:
using (var conn =
new OracleConnection(
"Uid=dbusr;Pwd=dbusrpwd;Server=oraserver;"))
{
var col =
conn.Query<User>(
"SELECT * FROM Users WHERE UserName = 'uid01'"
, null)
.ToList();
}
Aber wenn ich einen hartkodierten Parameter verwende, versuche ich, ihn durch eine parametrisierte Abfrage plus eine anonyme Klasse zu übergeben, so:
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();
}
Ich erhalte den folgenden Fehler:
ORA-01036: Name / Nummer der illegalen Variablen
Ich suchte in SO, fand aber keine ähnlichen Fehlermeldungen; es scheint, dass ich etwas schrecklich offensichtlich vermisse, aber leider - ich hatte keinen Kaffee mehr. Ich würde mich über Hinweise freuen.
Im Oracel-Stil von SQL haben benannte Parameter das Präfix :
Versuchen Sie :Id
anstelle von @Id
.