Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda