title: Getting QueryMultipleAsync in Dapper to work with F#
body: <p>We are trying to use dapper to return multiple result sets in F#. However I keep getting an Invalid operation Exception. This is what we have set up:</p>
  
  <pre><code>let query&lt;'T, 'T1&gt; connStr sql =
          async {
              use connection = new SqlConnection(connStr)
              do! connection.OpenAsync() |&gt; Async.AwaitTask
              use transaction = connection.BeginTransaction()
              try
                  use! result =
                      connection.QueryMultipleAsync(sql.Query, dict sql.Parameters, transaction)
                      |&gt; Async.AwaitTask
                  transaction.Commit()
                  let r1 = result.Read&lt;'T&gt;()
                  let r2 = result.Read&lt;'T1&gt;()
                  return (r1, r2)|&gt; Ok
              with 
              | ex -&gt;
                  transaction.Rollback()
                  return ex |&gt; DataException |&gt; Error
          }
  </code></pre>
  
  <p>The expected result would be a tuple of seqs, but currently I just keep getting </p>
  
  <blockquote>
    <p>System.InvalidOperationException: 'There is already an open DataReader associated with this Command which must be closed first.'</p>
  </blockquote>