我有一个有日记的网络应用程序。在这个日记中,我可以发布更新,我的朋友可以看到并投票。他们可以喜欢,不像等等。
所以,我接受了最后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循环,每个帖子一个,以及一个foreach印象。
有没有人可以通过我的控制器示例和我的剃刀View帮助我? 我的解释清楚了吗? 提前谢谢。
答案 0 :(得分:2)
展示次数为字符串类型。
var impressions = "";
您尝试将列表分配给该变量。
将其更改为
List<ImpressionSet> impressions;
答案 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();
});
答案 2 :(得分: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 };