我在C#上使用MongoDB并尝试进行简单查询。 程序执行终止于以下行:
var people = await collection.Find(filter).ToListAsync();
或在线
using (var cursor = await collection.FindAsync(filter))
它没有例外,它有Console.WriteLine(" test")和Console.ReadLine() 在程序结束时未执行。在cmd中,我看到与DB的连接已建立。
有什么想法吗?
P.S。
var filter = Builders<Follower>.Filter.Eq("id", f.id);
List<Follower> fetchedFollowers = new List<Follower>();
Console.WriteLine("0");
try
{
using (var cursor = await collection.FindAsync(filter))
{
Console.WriteLine("1");
while (await cursor.MoveNextAsync())
{
var batch = cursor.Current;
foreach (Follower foll in batch)
fetchedFollowers.Add(foll);
}
}
}
catch (Exception e)
{
Console.WriteLine("Exception block");
Console.WriteLine("2");
}
Console.WriteLine("3");
Console.ReadLine();
更新。这一行:
var count = await collection.Find(filter).CountAsync();
给出相同的结果 - 程序终止
答案 0 :(得分:0)
我有类似的问题。这对我有用:
using (var cursor = collection.FindAsync(filter))
{
Console.WriteLine("1");
while (cursor.Result.MoveNext())
{
var batch = cursor.Result.Current;
foreach (Follower foll in batch)
fetchedFollowers.Add(foll);
}
}
答案 1 :(得分:0)
听起来好像是sometext.blade.php
和async
的使用不当。请注意,await
实际上并不强制程序等待结果(使用await
完成)。 Task.Wait()
仅指定异步任务完成时应执行的操作。如果你的程序包含对异步方法的调用而你永远不会等待结果,它将在异步任务完成之前终止。