¿Puede Dapper devolver valores de una función SQL?

dapper

Pregunta

Tengo una función de SQL que devuelve un INT, cuando intento llamarlo a través de Dapper, siempre obtengo resultados.

Lo estoy llamando así:

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

¿Dapper es compatible con las funciones sql?

Respuesta aceptada

Dapper debería apoyarlo. ¿Estás seguro, tu función está en la base de datos correcta?

Aquí hay un ejemplo rápido 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

Y aquí está la función que creé en la misma base de datos que estoy usando en mi conexión.

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

Respuesta popular

Puede usar esto:

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué