2017-10-04 3 views
0

以下は私のモデルです。これはhttps://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/build-a-single-page-application-spa-with-aspnet-web-api-and-angularjsからダウンロードしたソースコードです。指示に従っています。ラムダクエリを使用してメソッドグループを割り当てるときに非同期メソッドがトリガーするエラー

public class TriviaQuestion 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

    [Required] 
    public string Title { get; set; } 

    public virtual List<TriviaOption> Options { get; set; } 
} 


    public class TriviaOption 
    { 
     [Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
     public int Id { get; set; } 

     [Required] 
     public string Title { get; set; } 

     [Column(Order = 0), ForeignKey("TriviaQuestion")] 
     public int QuestionId { get; set; } 

     [JsonIgnore] 
     public virtual TriviaQuestion TriviaQuestion { get; set; } 

     [JsonIgnore] 
     public bool IsCorrect { get; set; } 
    } 

、ここでは、私が言うエラー取得しています私のコントローラである「q.Countは、メソッドグループ匿名型のproperyを割り当てることができませんが。」:

private async Task<TriviaQuestion> NextQuestionAsync(string userId) 
     { 
      var lastQuestionId = await this.db.TriviaAnswers 
       .Where(a => a.UserId == userId) 
       .GroupBy(a => a.QuestionId) 
       .Select(g => new { QuestionId = g.Key, Count = g.Count() }) 
       .OrderByDescending(q => new { **q.Count**, QuestionId = q.QuestionId }) 
       .Select(q => q.QuestionId) 
       .FirstOrDefaultAsync(); 

      var questionsCount = await this.db.TriviaQuestions.CountAsync(); 

      var nextQuestionId = (lastQuestionId % questionsCount) + 1; 
      return await this.db.TriviaQuestions.FindAsync(CancellationToken.None, nextQuestionId); 
     } 

答えて

0

q.Countが有効な名前ではありません匿名型のフィールドには、あなたはあなたがまたOrderByDecendingとThenByDecendingにして離れてORDERBYを分割することができQuestionId

.OrderByDescending(q => new { Count = q.Count, QuestionId = q.QuestionId }) 

のためにやったようにそれに名前を付ける必要があります。

.OrderByDescending(q => q.Count) 
.ThenByDescending(q => q.QuestionId) 

IQueryableオブジェクトに対して作業している場合、サーバーのクエリが向上する可能性があります。

関連する問題