using the 2.0 driver the following code will sometimes hang and never return.
public async Task<T> GetFirst(FilterDefinition<T> query)
{
return await GetCollection.Find(query).FirstOrDefaultAsync();
}
if I debut and put a break point on the return line, everything returns normally. In the shell the query being run is something like this:
db.Customers.find({"Name" : /test$/i})
There are 2 solutions:
Add a ConfigureAwait(false)
at the end:
return await GetCollection.Find(query).FirstOrDefaultAsync().ConfigureAwait(false);
Just return the Task<T>
, since the result of FirstOrDefaultAsync()
is the same type as the result you want to return.
public Task<T> GetFirst(FilterDefinition<T> query)
{
return GetCollection.Find(query).FirstOrDefaultAsync();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With