C# Dapper – So rufen Sie eine gespeicherte Prozedur mit einem Parameter auf

C# Dapper – So rufen Sie eine gespeicherte Prozedur mit einem Parameter auf

Dieser Beitrag zeigt Ihnen, wie Sie mit Dapper eine gespeicherte Prozedur mit einem Parameter aufrufen. Wenn wir die folgende Tabelle mit einer ID (int ) und einen Text (NVARCHAR(MAX) ) und eine Zeile:

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!')

Und eine einfache gespeicherte Prozedur, die im Grunde einen einfachen SELECT * FROM ... umschließt Aussage:

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

Wir können diese gespeicherte Prozedur mithilfe von Dapper mit dem folgenden Stück C#-Code ausführen:

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();

Oben erstellen und öffnen wir eine neue Verbindung, wir machen eine SQL-Anweisung mit einem Parameter (EXEC GetEntity @Id ) und wir erstellen ein anonymes Objekt, das den Wert für unsere Aussage enthält. Dann führen wir Query aus Methode auf unserer Verbindung und erhalten Sie das Ergebnis unserer gespeicherten Prozedur. Das ist alles, was zum Aufrufen einer gespeicherten Prozedur mit Dapper erforderlich ist.

Mit einem generischen Typ

Wir können auch eine Klasse für das Ergebnis erstellen und diese in unserem Abfrageaufruf als generischen Parameter verwenden. Dadurch wird das Ergebnis automatisch dieser Klasse zugeordnet:

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

Und die .Query<MyEntity>() Aufruf:

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

Wenn unsere Prozedur mehrere Parameter hat, können wir mehrere Parameter mit einem , bereitstellen :

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

Das ist alles

Dies war ein Beitrag zum Aufrufen einer gespeicherten Prozedur mit einem Parameter unter Verwendung von Dapper. Ich hoffe, Sie fanden es hilfreich, bitte hinterlassen Sie unten einen Kommentar!