任务不包含' FirstOrDefault'的定义

时间:2017-02-18 21:48:51

标签: c# async-await

  

错误CS1061'任务>'不包含的定义   ' FirstOrDefault'没有扩展方法' FirstOrDefault'接受一个   类型'任务>'的第一个参数可以找到(是你   缺少using指令或程序集引用?),

使用facebook控制器创建一个Web应用程序,使用system.linq包含但仍然收到FirstOrDefault()的错误。 我不知道问题是什么,我重新安装了视觉工作室,因为他同样的事情适用于我的朋友笔记本电脑。 我耍弄了一下,看看这个方法是否存在于库中,它是否存在但仍然没有超过这个Image for the same

public async Task<ActionResult> Posts()
{
    var currentClaims = UserManager.GetClaimsAsync(HttpContext.Identity.GetUserId());

    // Error occurs here at FirstOrDefault
    var accesstoken = currentClaims.FirstOrDefault(x = > x.Type == "urn:tokens:facebook");

    if (accesstoken == null)
    ...
}

2 个答案:

答案 0 :(得分:10)

您在no mongos proxy available前面错过了await

UserManager.GetClaimsAsync()

答案 1 :(得分:2)

仔细查看错误消息。 GetClaimsAsync返回类型Task<IList<Claim>>类型列表。 Task类型没有FirstOrDefault方法。正如其他人所指出的那样,等待GetClaimsAsync并且它会起作用。

作为旁注,请在此处使用.Result,因为在大多数环境中都会死锁。请参阅this article以获取有关此问题的解释以及this article async / await最佳做法的解释。