Skip to content

Multiple queries

sdrapkin edited this page May 12, 2017 · 6 revisions

For single-result queries use db.QueryAsync(...) which returns ValueTask<IReadOnlyList<dynamic>>.
For multi-result queries use db.QueryMultipleAsync(...) which returns ValueTask<IReadOnlyList<IReadOnlyList<dynamic>>>.

Each dynamic object is an instance of RowStore class.

var db = DbContext.Create(connString);

var results = await db.QueryMultipleAsync(@"
	SELECT TOP 4 * FROM sys.databases;
	SELECT TOP 4 * FROM sys.objects;");

foreach (var result in results)
	foreach (var row in result)
		Console.WriteLine(row);

Destructuring multiple results

var db = DbContext.Create(connString);

var results = await db.QueryMultipleAsync(@"
	SELECT TOP 4 * FROM sys.databases;
	SELECT TOP 4 * FROM sys.objects;");

(var databases, var objects) = results; // requires "System.ValueTuple" dependency (Nuget)

foreach (var dbRow in databases) Console.WriteLine(dbRow);
foreach (var objRow in objects) Console.WriteLine(objRow);

Clone this wiki locally