Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

406
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda