Dapper peut-il renvoyer des valeurs d'une fonction SQL?

dapper

Question

J'ai une fonction SQL qui retourne une INT, quand j'essaie de l'appeler via Dapper, je ne reçois toujours aucun résultat.

Je l'appelle comme ça:

var result = _connection.Query<int>("functionname", new {Parm = 123}, commandType: CommandType.StoredProcedure);

Est-ce que dapper supporte les fonctions sql?

Réponse acceptée

Dapper devrait le supporter. Etes-vous sûr que votre fonction est dans la bonne base de données?

Voici un exemple rapide de VB.NET.

   Using conn = IDbConnectionFactory.CreateFromProvider("System.Data.SqlClient", CONNECTION_STRING)
                Dim sqlCommand As String = "SELECT dbo.fx_SumTwoValues(@valueOne,@valueTwo) As SumOfTwoValues"
                conn.Open()
                Dim result = (conn.Query(Of Integer)(sqlCommand, New With {.valueOne = 1, .valueTwo = 2})).First()
                Console.WriteLine(result.ToString)
            End Using

Et voici la fonction que j'ai créée sur la même base de données que j'utilise dans ma connexion.

CREATE FUNCTION fx_SumTwoValues
( @Val1 int, @Val2 int )
RETURNS int
AS
BEGIN
  RETURN (@Val1+@Val2)
END
GO

Réponse populaire

Peut utiliser ceci:

result = _connection.Query<dynamic>("SELECT dbo.functionName(@Parm)", new {Parm = 123},commandType: CommandType.Text);



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