C# Mongo FirstOrDefaultAsync 挂起

C# Mongo FirstOrDefaultAsync hangs

使用 2.0 驱动程序,以下代码有时会挂起并且永远不会挂起 return。

public async Task<T> GetFirst(FilterDefinition<T> query)
{
    return await GetCollection.Find(query).FirstOrDefaultAsync();
}

如果我首次亮相并在 return 行设置一个断点,一切都会 return 正常。在 shell 中,查询 运行 是这样的:

db.Customers.find({"Name" : /test$/i})

有2种解决方案:

  1. 最后加一个ConfigureAwait(false):

    return await GetCollection.Find(query).FirstOrDefaultAsync().ConfigureAwait(false);
    
  2. 只需 return Task<T>,因为 FirstOrDefaultAsync() 的结果与您要 return 的结果类型相同。

    public Task<T> GetFirst(FilterDefinition<T> query)
    {
        return GetCollection.Find(query).FirstOrDefaultAsync();
    }