我在使用异步和任务时遇到问题。
我有这个功能:
public async Task<List> Read(int id)
{
using (var db = new SmartFridgeContext())
{
var list = await db.Lists.Include(l => l.ListItems.Select(li => li.Item)).SingleOrDefaultAsync(l => l.ListId == id);
return list;
}
}
已经尝试了几个小时,但我不知道如何从List
获得Task<List>
。我的意思是,我想要&#34;纯粹&#34;列表回来,所以我可以使用它。
有人可以帮忙吗?
编辑:
为了清除混淆,这是一个List:
public class List
{
public int ListId { get; set; }
public string ListName { get; set; }
public ICollection<ListItem> ListItems { get; set; }
public List(string listname)
{
ListName = listname;
}
}
我知道我需要await
Task
,但我需要声明函数async
。如果我想在Main()中调用Read(int id)
该怎么办?
答案 0 :(得分:0)
您需要等待任务。
像这样使用:
List myList = await Read(5);
如果要在Main方法中使用它,编译器将不允许您等待该方法。使用此:
List myList = Read(5).Result;