2013-12-19 47 views
2

我有一個POCO類此使出許多領域不同的名稱類屬性:測繪領域與精緻小巧的

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

但是我的存儲過程返回不同的名稱上面的屬性(在這種情況下,在編號爲前:

  • IdCall
  • IDSTATUS
  • IdUserAssignedTo

這是我用來執行存儲過程的代碼:

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

我怎麼能確定一個映射說我想「IDSTATUS」從我的POCO我的存儲過程映射到「StatusId」類和「IdCall」到「CallId」等?

我沒有權限更改存儲過程,因爲它們由DBA控制,而較早的舊系統正在使用它們,如果存儲過程中的字段發生更改,這些會破壞存儲過程。

任何想法/想法讚賞。

+0

據據我所知,dapper沒有任何映射支持,因此您必須使用Automapper或您自己的自定義映射爲您創建自己的映射......或者您可以更改屬性以與存儲過程匹配? – CallumVass

回答

1

這使我想起最近的事情就是映射到存儲過程返回的列私有屬性和你想要的設置和獲取這些私有字段的名稱使公共屬性:

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

感謝毛羅。這對我有效 –