Метод ниже не компилируется. Альтернативы?
public static async Task<IEnumerable<object[]>> GetRecordsAsync(
this Transaction transaction,
string commandText,
params SqlParameter[] parameters)
{
// Get a SqlDataReader
var reader = await transaction.GetReaderAsync(commandText, parameters);
var fieldCount = -1;
// Begin iterating through records asynchronously
while (await reader.ReadAsync()) // Note we don't loop until .ReadAsync returns a boolean
{
// Grab all the field values out
if (fieldCount < 0)
fieldCount = reader.FieldCount;
var fields = new object[fieldCount];
reader.GetValues(fields);
// Yield return the field values from this record
yield return fields;
}
}
Сообщение об ошибке:
Тело 'TransactionExtensions.GetRecordsAsync(Transaction, string, params SqlParameter [])' не может быть блоком итератора, потому что 'Task > ' не является типом интерфейса итератора
Я не вижу способа адаптировать этот ответ к аналогичному звуковому (но другому) вопросу, потому что я не знаю априори, сколько раз цикл будет идти.
Изменить: фиксированное форматирование