2015-12-14 55 views
2

我一直在使用Dapper來調用存儲過程傳遞一個對象。例如:自動映射輸出參數與Dapper

如果我有一個對象:

public int ID { get; set; }  
public int Year { get; set; } 

我可以創建該對象,並把它傳遞給我的電話Execute作爲參數。 Dapper自動將所有這些屬性映射到參數中並執行存儲過程。真棒。

輸出參數怎麼樣?如果我的對象看起來像下面那樣,我怎樣才能讓Dapper使用輸出參數值填充該屬性?

public int ID { get; set; }  
public int Year { get; set; } 
public int OutputParameter { get; set; } 

輸出參數是否需要添加爲DynamicParameters

+0

我還沒有找到一種方式,以便它聽起來就像是可能的擴展方法的工作嗎? –

回答

0

事情是這樣的:

 DynamicParameters _params = new DynamicParameters(); 
     _params.Add("@newId", DbType.Int32, direction: ParameterDirection.Output); 
     var result = connection.Execute("[dbo].YourProc", _params, null, null, CommandType.StoredProcedure); 
     var retVal = _params.Get<int>("newId"); 
+1

這就是我現在要做的。然而,我問的是能夠填充原始對象而不必指定輸出參數。我不必手動添加參數來執行SP。有沒有告訴Dapper這是一個輸出參數的方法,一旦你執行它就獲取這個值。 – Alex