C# Dapper:cómo llamar a un procedimiento almacenado con un parámetro

C# Dapper:cómo llamar a un procedimiento almacenado con un parámetro

Esta publicación le muestra cómo llamar a un procedimiento almacenado con un parámetro usando Dapper. Si tenemos la siguiente tabla con un Id (int ) y un texto (NVARCHAR(MAX) ) y una fila:

CREATE TABLE [dbo].[MyEntities](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Text] [nvarchar](max) NOT NULL,
   CONSTRAINT [PK_MyEntities] PRIMARY KEY CLUSTERED 
   (
	  [Id] ASC
   )
)

INSERT INTO [dbo].[MyEntities]
           ([Text])VALUES ('This is a text!')

Y un procedimiento almacenado simple que básicamente envuelve un SELECT * FROM ... simple declaración:

CREATE PROC GetEntity @Id int
AS
SELECT * FROM MyEntities e
WHERE [id] = @Id

Podemos ejecutar este procedimiento almacenado usando Dapper con la siguiente pieza de código C#:

using var con = new SqlConnection("<Your connectionstring>");
con.Open();

var sql = "EXEC GetEntity @Id";
var values = new { Id = 0 };
var getEntityResult = con.Query(sql, values).ToList();

En lo anterior, creamos y abrimos una nueva conexión, hacemos una declaración SQL con un parámetro (EXEC GetEntity @Id ) y creamos un objeto anónimo que contiene el valor de nuestra declaración. Luego ejecutamos el Query método en nuestra conexión y obtener el resultado de nuestro procedimiento almacenado. Eso es todo lo que hay que hacer para llamar a un procedimiento almacenado usando Dapper.

Con un tipo genérico

También podemos crear una clase para el resultado y usarla en nuestra llamada Query como un parámetro genérico. Esto asigna automáticamente el resultado a esa clase:

class MyEntity
{
    public int Id { get; set; }
    public string Text { get; set; }
}

Y el .Query<MyEntity>() llamar:

var sql = "EXEC GetEntity @Id";
var values = new { Id = 0 };
var results = con.Query<MyEntity>(sql, values);

Si nuestro procedimiento tiene varios parámetros, podemos proporcionar varios parámetros con un , :

var sql = "EXEC GetEntity @Id, @Text";
var values = new { Id = 7 , Text = "This is a text!"};
var results = con.Query(sql, values);

Eso es todo

Esta fue una publicación sobre cómo llamar a un procedimiento almacenado con un parámetro usando Dapper. Espero que te haya resultado útil, ¡por favor deja un comentario abajo!