title: "using" blocks with IAsyncEnumerable
body: <p>In my repository code, I am getting a disposable instance of Database.  I am then using this to return an <code>IAsyncEnumable</code> of my object type.  The problem I'm running into is that the database object is being disposed before the enumeration happens at all -- so the connection is closed from under it.  What is the pattern to solve this?  (if it matters -- which it shouldn't -- this is NPoco).</p>
  <p>I am editing the problem to say that it is specific to IAsyncEnumerable such that the awaited row-by-row fetch is more appropriate in this context, as opposed to assembling an entire List of results and returning that at once.</p>
  <pre><code>    public IAsyncEnumerable&lt;T_AccountViewProperty&gt; RetrieveManyAsync(AccountViewId input)
      {
          var database = GetDatabase();
          return database.Query&lt;T_AccountViewProperty&gt;()
              .Where(x =&gt; x.AccountViewId == (int)input)
              .ToEnumerableAsync()
              .DisposeWhenCompleted(database);     // &lt;-- is this a thing?
      }
  </code></pre>