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种解决方案:
最后加一个ConfigureAwait(false)
:
return await GetCollection.Find(query).FirstOrDefaultAsync().ConfigureAwait(false);
只需 return Task<T>
,因为 FirstOrDefaultAsync()
的结果与您要 return 的结果类型相同。
public Task<T> GetFirst(FilterDefinition<T> query)
{
return GetCollection.Find(query).FirstOrDefaultAsync();
}
使用 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种解决方案:
最后加一个
ConfigureAwait(false)
:return await GetCollection.Find(query).FirstOrDefaultAsync().ConfigureAwait(false);
只需 return
Task<T>
,因为FirstOrDefaultAsync()
的结果与您要 return 的结果类型相同。public Task<T> GetFirst(FilterDefinition<T> query) { return GetCollection.Find(query).FirstOrDefaultAsync(); }