2011-12-02 9 views
0

私は日記を持つWebアプリケーションを持っています。この日記では、私は更新を投稿でき、友達はそれを見て投票することができます。彼らは好きかもしれません。このforeachループを実行するにはどうすればいいですか?

私は6つの最後の投稿を取るので、各投稿の投票(別名など)も取らなければなりません。

私の問題は、どのようにしてこの感想投票を日記帳に関連付けることができるのでしょうか? 私はこの試みた:

var impressions = ""; 

foreach (var item in diaryPosts) 
{ 
    impressions = (from i in db.Impressions 
        select new ImpressionsSet 
        { 
         ImpressionID = i.ID, 
         ImpressionTitle = i.Impression, 
         ImpressionNum = i.DiaryImpressions.Count(d => d.DiaryPostsID == item.PostID) 
        }).ToList(); 
} 

をしかし、このアプローチでは、私はエラーを取得:

Cannot implicity convert type 'System.Collections.Generic.List<...>' to 'string' 

私はこのVAR「感想」を希望私は私の中で示したこれら6つの最後のポストに関連するすべてのインプレッションを取得ページ。

私が持っている日記記事には、私の印象とそのカウントにもう一度foreachがありますが、このvar '印象'には内部に2つのforeachループがあります。 。

私のコントローラーのサンプルと私の剃刀ビューのサンプルで誰でも助けてくれますか? 私の説明は十分明確ですか? ありがとうございます。

答えて

2

インプレッションは文字列です。

var impressions = "";

そして、あなたはその変数にリストを割り当てよう。どのように私は私のforeachの中で、この2つの感想リストにアクセスすることができます。

List<ImpressionSet> impressions; 
+0

は今、私は別の質問を持っている、あなたにそんなに@Peri感謝してみてください私の見解でループ? –

+0

私はAddRangeが必要であることを認識していますが、インプレッションではありません= ...そのようです:impressions.AddRange(from db.Impressions ...)。ToList()); –

1

変更それはこの1

var allimpressions = diaryPosts.SelectMany(dp => { 
     return (from i in dp.Impressions 
      select new ImpressionsSet 
      { 
      ImpressionID = i.ID, 
      ImpressionTitle = i.Impression, 
      ImpressionNum = i.DiaryImpressions.Count(d => d.DiaryPostsID == dp.PostID) 
      }).ToList(); 
     }); 
0
var allimpressions = 
    from dp in diaryPosts 
    from i in dp.Impressions 
    let count = i.DiaryImpressions.Count (di => di.DiaryPostsID == dp.PostID) 
    select new { ImpressionID = i.ID, ImpressionTitle = i.Impression, ImpressionNum = count }; 
関連する問題