2013-10-01 10 views
5

でストアドプロシージャからフィールド名を取得します。私はこのようなDapperの持つストアドプロシージャを実行しています:Dapperの

var sprocResult = conn.Query("TestSproc", new {clientID = 2}, commandType: CommandType.StoredProcedure).ToList(); 

私は結果を列挙して値をリストすることができます。私ができることをするために必要なものはまた、sprocから戻ってきたフィールド名を列挙しています。私は設計時にこれらのフィールド名を知らないでしょう。

ありがとうございます。

答えて

9

dynamic APIを使用している場合(Query<T>(...)の代わりに)、各行にもIDictionary<string,object>が実装されています。だから、基本的には:クエリが行を戻さない可能性がある場合

foreach(IDictionary<string,object> row in sprocResult) 
{ 
    var colNames = row.Keys; 
    //... 
} 
+0

素晴らしいです、ありがとうございます。 – DavidGouge

0

Query().First().Keysは動作しません。この場合、ExecuteReader().GetName(i)を使用できます。