Map Résultat de la procédure stockée pour objecter à l'intérieur d'un objet

c# dapper sql sql-server stored-procedures

Question

Si j'ai une classe Person qui possède une propriété de classe Dog:

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

Sur un seul appel SP, je souhaite remplir à la fois l’objet chien et l’objet personne, mais je ne vois pas comment faire.

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;
}

C'est possible?

Réponse acceptée

Utilisez le QueryMultiple et écrivez 2 instructions SELECT dans ONE procédure stockée.

Voici quelques liens utiles.

Dapper.NET et proc stocké avec plusieurs jeux de résultats

Plusieurs instructions SQL en un seul tour à l'aide de Dapper.NET




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi