Multiple SQL statements in one roundtrip using Dapper.NET Multiple SQL statements in one roundtrip using Dapper.NET sql sql

Multiple SQL statements in one roundtrip using Dapper.NET


Yes, the Dapper QueryMultiple extension can do that:

string query = @"SELECT COUNT(*) FROM TABLEA;                 SELECT COUNT(*) FROM TABLEB";using (var multi = connection.QueryMultiple(query, null)){    int countA = multi.Read<int>().Single();    int countB = multi.Read<int>().Single();}     

According to Marc Gravell this is the ideal way to execute multiple queries in a single batch.

Note: Dapper creator Sam Saffron has posted a detailed explanation with code sample on using QueryMultiple to accomplish this.

UPDATE: I add the important comment from Marc

Note: from 1.5-ish (a little earler on the alpha builds) there is aReadSingle() method that may be more convenient and efficient thanRead().Single()


var grid = connection.QueryMultiple("             SELECT COUNT(*) FROM TABLEA             SELECT COUNT(*) FROM TABLEB             SELECT COUNT(*) FROM TABLEC");var lstResult = new List<int>();var isNext = false;do{    var first2 = info.Read<int>().Single();    lstResult.Add(first2);    isNext=info.IsConsumed;}while (!isNext);