Dapper et FBCommand

c# dapper firebird

Question

J'ai une question sur la façon d'écrire des SQL avec Dapper.

Maintenant, j'utilise quelque chose comme ceci:

resultObject result;
String sqlCmd = String.Format("select * from SOME_PROCEDURE('{0}',{1},{2})", Param1, Param2, Param3);
result = FbConnection1.Query<resultObject>(sqlCmd, null).ToList();

Mais maintenant je vois que ce n'est pas si propre, et j'ai trouvé une commande FBCommand qui me permet d'utiliser

FbCommand cmd = new FbCommand("select * from SOME_PROCEDURE(@param1, @param2)");
cmd.Parameters.Add("@param1", FbDbType.Integer).Value = value1;
cmd.Parameters.Add("@param2", FbDbType.Integer).Value = value2;

Je ne sais pas comment utiliser Dapper avec FBCommand, est-ce possible? Ou peut-être utiliser String.Format pour la construction de SQL est une bonne façon?

Réponse acceptée

S'il existe une FbConnection correspondante, et si cette connexion est une implémentation ADO.NET standard, et si elle prend en charge les paramètres standard, alors oui, vous pouvez essayer:

using(FbConnection conn = ...)
{
    var data = conn.Query<SomeType>(
       "select * from SOME_PROCEDURE(@value1, @value2)",
       new { value1, value2 }).ToList();
    // ...
}

Vous pouvez également essayer:

using(FbConnection conn = ...)
{
    var data = conn.Query<SomeType>("SOME_PROCEDURE",
       new { param1 = value1, param2 = value2 },
       commandType: CommandType.StoredProcedure).ToList();
    // ...
}



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