2011-12-02 24 views
0

我有一個有日記的網絡應用程序。在這本日記中,我可以發佈更新,我的朋友可以看到它並投票。他們可以喜歡,不像,等等。如何執行這個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' 

我想這個變種「印象」得到有關我表現出這6個最新帖子所有展示我的頁。

因此,我有我的日記文章,我會有另一個foreach我的印象和它的計數,但另一方面,這個var'印象'將有2個foreach循環裏面,每個帖子和一個foreach印象。

任何人都可以幫我與我的控制器和我的剃刀視圖的示例? 我的解釋清楚了嗎? 預先感謝您。

回答

2

展示次數是字符串類型。

var impressions = "";

你嘗試分配列表變量。

將其更改爲

List<ImpressionSet> impressions; 
+0

謝謝你這麼多@Peri,現在我還有一個問題:我如何可以訪問此2只展示列出了我的foreach在我看來循環? –

+0

我只是意識到我需要AddRange而不是Impressions = ...它是這樣的:Impressions.AddRange((從我在db.Impressions ...)。ToList()); –

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 };