Commit bff05e72 authored by Marc Gravell's avatar Marc Gravell

avoid finally/await pre C# 6

parent b3927ce1
...@@ -558,23 +558,27 @@ private Task<IEnumerable<T>> ReadAsyncImpl<T>(Type type, bool buffered) ...@@ -558,23 +558,27 @@ private Task<IEnumerable<T>> ReadAsyncImpl<T>(Type type, bool buffered)
private async Task<IEnumerable<T>> ReadBufferedAsync<T>(int index, Func<IDataReader, object> deserializer, Identity typedIdentity) private async Task<IEnumerable<T>> ReadBufferedAsync<T>(int index, Func<IDataReader, object> deserializer, Identity typedIdentity)
{ {
try //try
{ //{
var reader = (DbDataReader)this.reader; var reader = (DbDataReader)this.reader;
List<T> buffer = new List<T>(); List<T> buffer = new List<T>();
while (index == gridIndex && await reader.ReadAsync(cancel).ConfigureAwait(false)) while (index == gridIndex && await reader.ReadAsync(cancel).ConfigureAwait(false))
{ {
buffer.Add((T)deserializer(reader)); buffer.Add((T)deserializer(reader));
} }
return buffer; if (index == gridIndex) // need to do this outside of the finally pre-C#6
}
finally // finally so that First etc progresses things even when multiple rows
{
if (index == gridIndex)
{ {
await NextResultAsync().ConfigureAwait(false); await NextResultAsync().ConfigureAwait(false);
} }
} return buffer;
//}
//finally // finally so that First etc progresses things even when multiple rows
//{
// if (index == gridIndex)
// {
// await NextResultAsync().ConfigureAwait(false);
// }
//}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment