2017-09-01 68 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(); 
相关问题