Dapperでストアドプロシージャからフィールド名を取得する

.net dapper

質問

私はこのようにDapperを使ってストアドプロシージャを実行しています:

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

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

前もって感謝します。

受け入れられた回答

dynamic API(例としてQuery<T>(...) Query(...)代わりにQuery(...)使用する場合、各行はIDictionary<string,object>も実装IDictionary<string,object> 。だから基本的に:

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

人気のある回答

クエリが行を返さない場合、 Query().First().Keysは機能しません。この場合、 ExecuteReader().GetName(i)使用できます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow