J'utilise Dapper (et je ne pouvais pas être plus heureux), je sais comment accéder à des procédures normales stockées comme mentionné here, cependant, comment puis-je passer sur le nom Npgsql
refcursor
à la proc (en utilisant C#)? Par exemple:Dapper/Npgsql procédure stockée avec le paramètre refcursor requête
J'ai un proc qui ressemble à:
FUNCTION xx.getData(
v_ref refcursor,
v_id integer)
RETURNS refcursor AS
...
Comment puis-je spécifier les paramètres de xx.getData
?
Par exemple, si getData
accepté un seul paramètre de type int, alors je pourrais l'appeler comme ceci:
var data = cnn.Query<myType>("xx.getData", new {Id = 1},
commandType: CommandType.StoredProcedure);
OU
var p = new DynamicParameters();
p.Add("@id", 11);
cnn.Execute("xx.getData", p, commandType: CommandType.StoredProcedure);
Je ne peux pas trouver le bon type dans System.DbType
transmettre dans la requête.
Ahan, merci pour l'information. En fait, 'DynamicParameters.Add (...)' de Dapper accepte un argument 'System.DbType', et il n'y a pas de type correspondant pour' NpgsqlDbType.RefCursor' (ou du moins je ne peux pas en trouver un). – Achilles
Vous voulez probablement jeter un coup d'œil au gestionnaire de type personnalisé Dapper –