Получить имена полей из хранимой процедуры с Dapper

Я выполняю хранимую процедуру с помощью Dapper следующим образом:

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

Я могу перечислить результаты и список значений. Что мне нужно сделать, так это также перечислить имена полей, которые возвращаются из sproc. Я не буду знать эти названия полей во время разработки.

спасибо заранее.

2 ответов


при использовании dynamic API (по Query(...) вместо Query<T>(...), согласно вашему примеру), каждая строка также реализует IDictionary<string,object>. Так что в основном:

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

Если запрос не может возвращать строки, то Query().First().Keys не работает. В этом случае, вы можете использовать ExecuteReader().GetName(i).