我找到了一段代码,它正在使用MongoDB驱动程序从集合中获取单个对象…这不可能是对的,不是吗?有没有更好的方法得到这个?
IMongoCollection<ApplicationUser> userCollection;
....
userCollection.FindAsync(x => x.Id == inputId).Result.ToListAsync().Result.Single();
最佳答案
是的,有。
首先不要使用FindAsync
,而是使用Find
。在IFindFluent
结果中,使用SingleAsync
扩展方法并在异步方法中等待返回的任务:
async Task MainAsync()
{
IMongoCollection<ApplicationUser> userCollection = ...;
var applicationUser = await userCollection.Find(_ => _.Id == inputId).SingleAsync();
}
新驱动程序以独占方式使用async await。不要用
Task.Result
阻塞它。关于c# - 在C#中从mongodb获取单个对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31171451/