从任务<tresult> </tresult>获取结果

时间:2015-04-03 19:05:59

标签: c# task entity-framework-6

我在使用异步和任务时遇到问题。

我有这个功能:

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)该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要等待任务。

像这样使用:

List myList = await Read(5);

如果要在Main方法中使用它,编译器将不允许您等待该方法。使用此:

List myList = Read(5).Result;