我需要使用尚未切换到异步的旧控制器来计数匹配过滤器的项目。我们对如何做到这一点的async answer:Mongo DB C#驱动程序2.0同步计数
long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));
我还发现了MongodDb网站上的一篇文章Introducing the 2.0 .NET Driver有这似乎证实,这是不可能的评论:
- 它只是异步的:这是真的。新的API只有异步的趋势(例如微软的HttpClient)。一般来说,异步编程很容易,并且不需要大量线程就可以获得更高的服务器吞吐量。我们正在考虑是否还应该支持同步API,并且在我们收到一些请求(包括您的)时,一般用户似乎很想使用异步编程。
尽管如此,我想问一下,如果有一种方法可以做到这一点/确认,它不会使控制器方法异步(及其所有佣工)是不可能的。
你应该能够不'await'运行'collection.CountAsync()Result',它只会同步运行。 – DLeh
看起来像我们在同一时间发布。请将其发布为答案,以便我可以接受。复制我的,如果你想,我会删除我的。 – VSO
不用担心!只要你弄清楚了 – DLeh