Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

404
Views
Procedimiento almacenado Dapper Call y resultado del mapa a la clase

Tengo un procedimiento almacenado T-SQL:

 CREATE PROCEDURE [dbo].[GetRequestTest] @RequestId UNIQUEIDENTIFIER AS BEGIN SELECT Request.Amount, Request.Checksum FROM Request WHERE RequestId = @RequestId END

Clase de mapeo de C#:

 public class CustomTest : Itest { public decimal Amount {get;set;} public string Checksum { get; set; } }

Estoy llamando para intentar invocar el procedimiento almacenado usando Dapper:

 public void Load(CustomTest obj, Guid RequestId) { using (var con = base.GetClosedConnection()) { con.Open(); var p = new DynamicParameters(); p.Add("@RequestId", dbType: DbType.Guid, direction: ParameterDirection.Input); var result = con.ExecuteReader("[dbo].[GetRequestTest]", param: p, commandType: CommandType.StoredProcedure); while (result.Read()) obj.Amount = (decimal)result["Amount"]; } }

Pero el resultado es nulo

Traté de llamar para poner la declaración SQL del procedimiento almacenado directamente en el código C#, y funciona bien, pero no funciona con el procedimiento almacenado.

¿Alguna idea - cómo hacer que funcione?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Llamas al método incorrecto:

 public void Load(CustomTest obj, Guid RequestId) { using (var con = base.GetClosedConnection()) { con.Open(); //result is list of CustomTest var result = db.Query<CustomTest>("GetRequestTest", new {RequestId}, commandType: CommandType.StoredProcedure); } }

Cómo usar dapper: https://github.com/StackExchange/dapper-dot-net

over 4 years ago · Santiago Trujillo Report

0

using (var con = base.GetClosedConnection()) { var result = conn.Query<CustomTest>("exec [dbo].[GetRequestTest] @id", new {Id = RequestId}); }

Los nombres de las columnas del procedimiento almacenado o los resultados de las consultas deben ser los mismos que los nombres de las propiedades de CustomTest (por ejemplo, cantidad, suma de control). Como resultado, recibirá IEnumerable con los datos correspondientes.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!