Map Resultado del procedimiento almacenado al objeto dentro de un objeto

c# dapper sql sql-server stored-procedures

Pregunta

Si tengo una clase Person que tenga propiedad de la clase Dog:

public class Person{
 public string Name {get;set;}
 public Dog Doggie {get;set;}
}

En una sola llamada de SP quiero rellenar el objeto de perro y el objeto de persona, pero no puedo encontrar la manera de hacerlo.

CREATE PROCEDURE Test
 AS
BEGIN
    SET NOCOUNT ON;

    -- Insert statements for procedure here
      SELECT 
        Name                = p.Person_Name,
        Doggie.Name (This fails) = d.Dog_Name

      FROM My fancy join......
END
GO



  public Person GetByUid(Guid uid)
    {
        Person personToReturn;

        using (var connection = this.connectionFactory.GetOpenConnection())
        {
            try
            {
                personToReturn= connection.Query<Person>("ProcedureName",
                    new {  personUid = uid },
                    commandType: CommandType.StoredProcedure).Single();
            }
            catch ()
            {
                return null;
            }

        }

    return personToReturn;
}

¿Es posible?

Respuesta aceptada

Use QueryMultiple y escriba 2 instrucciones SELECT en UN procedimiento almacenado.

Aquí hay algunos enlaces de ayuda.

Dapper.NET y el proceso almacenado con múltiples conjuntos de resultados

Varias declaraciones SQL en una ida y vuelta usando Dapper.NET



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué