Получить имена полей из хранимой процедуры с 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)
.