Details
-
Improvement
-
Resolution: Won't Fix
-
Major
-
None
-
None
-
1
Description
A lot of software still being developed with C# lang level less than 8.
for that reason, I think It would be beneficial to have also the code of how to get n1ql query results in C# 7.
in C# 8 you would do something like that
var cluster = await _fixture.GetCluster().ConfigureAwait(false); |
var result = await cluster.QueryAsync<dynamic>("SELECT default.* FROM `default` WHERE type=$name;", |
parameter =>
|
{
|
parameter.Parameter("name", "person"); |
}).ConfigureAwait(false); |
await foreach (var o in result.ConfigureAwait(false)) |
{
|
_testOutputHelper.WriteLine(JsonConvert.SerializeObject(o, Formatting.None));
|
}
|
while in earlier versions:
public async Task Test_QueryWithAsyncStreamCSharp7() |
{
|
var cluster = await _fixture.GetCluster().ConfigureAwait(false); |
var result = await cluster.QueryAsync<dynamic>("SELECT default.* FROM `default` WHERE type=$name;", |
parameter =>
|
{
|
parameter.Parameter("name", "person"); |
}).ConfigureAwait(false); |
// Async streaming approach in C# 7
|
var enumerator = result.GetAsyncEnumerator();
|
try |
{
|
while (await enumerator.MoveNextAsync().ConfigureAwait(false)) |
{
|
_testOutputHelper.WriteLine(JsonConvert.SerializeObject(enumerator.Current, Formatting.None));
|
}
|
}
|
finally |
{
|
await enumerator.DisposeAsync().ConfigureAwait(false); |
}
|
result.Dispose();
|
Source:
Attachments
Issue Links
- depends on
-
NCBC-2610 C# 7 & 8 samples
- Open