【发布时间】:2021-04-23 16:49:50
【问题描述】:
对于 C# 来说还是个新手。我的代码给了我想要的结果,但我不确定我是否以一种好的方式实现了它。如果您想回答,请详细说明。
我的目标是通过FindAsync 在我的 MongoDB 中搜索条目。这是我的代码:
public async Task<List<T>> SearchDocAsync<T, U>(string collection,
string findFieldName, U findValue)
{
var _collection = db.GetCollection<T>(collection);
var filter = Builders<T>.Filter.Eq(findFieldName, findValue);
var result = await (_collection.FindAsync(filter).Result.ToListAsync());
return result;
}
这是我在 WinForms 中的称呼方式:
private async void BtnReadAll_Click(object sender, EventArgs e)
{
var asyncResults = await myMongoAux.SearchDocAsync<MyTModel, string>(
myCollectionName, "MyDBString", "TestString");
foreach (var r in asyncResults)
{
RtxbxResult.Text += $"{r.MyDBInt}\t{r.MyDBString}\n";
}
}
这样安全吗?我不应该使用using(但是如何使用)?我读过一些你应该使用的东西:
配置等待(假)
如何以及为什么?
请善待我,帮助我了解更多。感谢您的时间。 :)
【问题讨论】:
-
更好的 SearchDocAsync-Methode 会是什么样子?任何示例链接?
标签: c# winforms async-await mongodb-.net-driver using-statement