Mappage des champs dans la procédure stockée aux propriétés de classe avec des noms différents avec Dapper

dapper sql-server stored-procedures

Question

J'ai cet exercice d'une classe POCO avec de nombreux champs:

public class Call
{
    public int Id { get; set; }
    public string Customer { get; set; }
    public int StatusId { get; set; }
    public int UserAssignedToId { get; set; }
    public string UserAssignedToName { get; set; }
}

Cependant, ma procédure stockée renvoie des noms différents aux propriétés ci-dessus (dans ce cas, l'ID est avant:

  • IdCall
  • IdStatus
  • IdUserAssignedTo

C'est le code que j'utilise pour exécuter la procédure stockée:

var call = conn.Query<Call>("CallSPName", new { IdCall = callId }, commandType: CommandType.StoredProcedure).First();

Comment puis-je spécifier un mappage pour dire que je voudrais "IdStatus" de ma mappe de procédure stockée à "StatusId" dans ma classe POCO et "IdCall" à "CallId", etc.?

Je n'ai pas accès aux modifications des procédures stockées car elles sont contrôlées par les administrateurs de bases de données et les anciens systèmes hérités les utilisent, car elles seraient cassées si les champs étaient modifiés dans la procédure stockée.

Toutes idées / pensées appréciées.

Réponse populaire

La chose la plus proche qui me vient à l'esprit est d'avoir des propriétés privées mappées sur des colonnes renvoyées par la procédure stockée et de rendre les propriétés publiques avec les noms que vous voulez définir et obtenir ces champs privés:

// ...
private int IdStatus;
public int StatusId {
    get { return IdStatus; }
    set { IdStatus = value; }
}
// ...



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