2017-02-18 14 views
0

エラーCS1061は、「タスク>」 の定義が含まれていないの定義が含まれていないし、何の拡張メソッドはありません「FirstOrDefault」タイプの 最初の引数を受け入れる「タスク>」ができました(あなた がusingディレクティブまたはアセンブリ参照が不足している?)が発見され、タスクは「FirstOrDefault」「FirstOrDefault」

Facebookのコントローラを使用したWebアプリケーションを作り、System.Linqのを使用して、それでもFirstOrDefault()のためのエラーを取得含まれていました。 私は問題が何であるか分からず、同じことが私の友人のラップトップのために働くので、私は視覚スタジオも再インストールしました。 私はこの方法は、ライブラリ内に存在し、それがあるかどうかを確認するために周りのジャグリングが、それでもあなたはUserManager.GetClaimsAsync()の前でawaitが欠落しているこの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) 
    ... 
} 
+0

currentClaims変数のタイプは何ですか? FirstOrDefaultを使用するには、型はIEnumerableでなければなりません。 –

答えて

10

過ぎて届かない:

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

ルックエラーメッセージが表示されます。 GetClaimsAsyncは、タイプTask<IList<Claim>>ではなく、タイプリストを返します。タスクタイプにFirstOrDefaultメソッドがありません。他の人が指摘しているように、GetClaimsAsyncを待っていると動作します。

補足として、ではなくを使用してください。.Resultここで、ほとんどの環境でデッドロックが発生する可能性があります。非同期/ベストプラクティスをお待ちしている場合は、デッドロックが発生する理由とthis articleについては、this articleを参照してください。

関連する問題