簡體   English   中英

任務不包含“ FirstOrDefault”的定義

[英]Task does not contain a definition for 'FirstOrDefault'

錯誤CS1061'任務>'不包含'FirstOrDefault'的定義,並且找不到擴展方法'FirstOrDefault'接受類型為'Task>'的第一個參數(您是否缺少using指令或程序集引用?),

使用system.linq使用facebook控制器制作Web應用程序,但仍然收到FirstOrDefault()錯誤。 我不知道問題是什么,我也重新安裝了Visual Studio,因為他的東西同樣適用於我的朋友筆記本電腦。 我四處逛逛,看看該方法是否存在於庫中,並且仍然存在,但仍然無法通過此Image

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)
    ...
}

您在UserManager.GetClaimsAsync()前面缺少await

var currentClaims = await UserManager.GetClaimsAsync(...);

仔細查看錯誤消息。 GetClaimsAsync返回類型Task<IList<Claim>>而不是類型列表。 Task類型沒有FirstOrDefault方法。 正如其他人指出的那樣,等待GetClaimsAsync它將起作用。

作為一個側面說明, 不要.Result這里將在大多數環境死鎖。 請參見本文為為什么這會發生死鎖的解釋,也是本文的異步/等待最佳實踐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM