Ich habe diese Übung aus einer POCO-Klasse mit vielen Feldern:
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; }
}
Meine gespeicherte Prozedur gibt jedoch unterschiedliche Namen an die obigen Eigenschaften zurück (in diesem Fall ist die ID vorher:
Dies ist der Code, den ich verwende, um die gespeicherte Prozedur auszuführen:
var call = conn.Query<Call>("CallSPName", new { IdCall = callId }, commandType: CommandType.StoredProcedure).First();
Wie kann ich eine Zuordnung angeben, um zu sagen, dass ich "IdStatus" von meiner gespeicherten Prozedur-Map zu "StatusId" in meiner POCO-Klasse und "IdCall" zu "CallId" usw. möchte?
Ich habe keinen Zugriff, um die gespeicherten Prozeduren zu ändern, da sie von DBAs gesteuert werden und ältere Legacy-Systeme sie verwenden, die brechen würden, wenn die Felder in der gespeicherten Prozedur geändert würden.
Irgendwelche Ideen / Gedanken geschätzt.
Die nächste Sache, die mir in den Sinn kommt, ist, dass private Eigenschaften den von der gespeicherten Prozedur zurückgegebenen Spalten zugeordnet werden und die öffentlichen Eigenschaften mit den Namen erstellt werden, die Sie festlegen und diese privaten Felder erhalten möchten:
// ...
private int IdStatus;
public int StatusId {
get { return IdStatus; }
set { IdStatus = value; }
}
// ...