2017-09-01 63 views
0

使用linqtotwitter我試圖尋找鳴叫和使用這種模式在表格中顯示出來:有誰知道爲什麼我得到這個asp.net錯誤? CS1061 linqtotwitter

using System; 
using System.ComponentModel; 


namespace test.Models 
{ 
    public class TweetSearchModel 
    { 
     [DisplayName("Tweet ID")] 
     public ulong ID { get; set; } 

     [DisplayName("Screen Name")] 
     public string ScreenName { get; set; } 

     [DisplayName("Tweet")] 
     public string Text { get; set; } 

     internal object ToListAsync() 
     { 
      throw new NotImplementedException(); 
     } 
    } 
} 

這樣的觀點:

@model IEnumerable<test.Models.TweetSearchModel> 
@{ 
    ViewBag.Title = "Search"; 
} 

<table> 

@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.ID) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.ScreenName) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Text) 
     </td> 
    </tr> 
} 

</table> 

與此控制器:

using System; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Web.Mvc; 
using aLevel.Models; 
using LinqToTwitter; 
using System.Collections.Generic.I; 
using System.Data.Entity; 

namespace test.Controllers 
{ 
    public class QueriesController : Controller 
    { 
     // GET: Queries 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     [ActionName("Search")] 
     public async Task<ActionResult> SearchAsync() 
     { 
      var auth = new MvcAuthorizer 
      { 
       CredentialStore = new SessionStateCredentialStore() 
      }; 

      var ctx = new TwitterContext(auth); 

      var searchResponse = 
       await 
       (from search in ctx.Search 
       where search.Type == SearchType.Search && 
         search.Query == "\"LINQ to Twitter\"" 
       select search) 
       .SingleOrDefaultAsync(); 

      var tweets = 
       await 
       (from tweet in searchResponse.Statuses 
       select new TweetSearchModel 
       { 
        ID = tweet.ID, 
        ScreenName = tweet.ScreenName, 
        Text = tweet.Text 
       }) 
       .ToListAsync(); 

      return View(tweets); 
     } 
    } 
} 

然而,「.ToListAsync」正在拋出一個錯誤「CS1061'IEnumerable'不包含'ToListAsync'的定義,也沒有擴展m ethod「ToListAsync」接受類型「的IEnumerable」的第一個參數可以找到(是否缺少using指令或程序集引用?)」

回答

0

searchResponse.Statuses是一個List<Status>,所以你正在做一個LINQ to Objects查詢。 LINQ to Objects(Enumerable)沒有ToListAsync,我不確定它應該具有什麼,因爲查詢不會導致進程外操作 - 它只是在內存中。您可以使用非異步運算符,如下所示:

 var tweets = 
      (from tweet in searchResponse.Statuses 
      select new TweetSearchModel 
      { 
       ID = tweet.ID, 
       ScreenName = tweet.ScreenName, 
       Text = tweet.Text 
      }) 
      .ToList(); 
相關問題