【发布时间】:2015-01-21 12:00:22
【问题描述】:
我有一个名为 Renders 的模型。
public class Render
{
public int RenderId { get; set; }
public string ClientName { get; set; }
public string Title { get; set; }
public ICollection<Comment> Comments { get; set; }
}
该渲染实体中的评论集合,其模型如下所示:
public class Comment
{
public int CommentId { get; set; }
[Column(TypeName = "varchar(Max)"), DataType(DataType.MultilineText)]
public string UserComment { get; set; }
public bool CommentApproved { get; set; }
public int RenderId { get; set; }
public virtual Render Render { get; set; }
public virtual ICollection<CommentImage> CommentImages { get; set; }
}
我需要获取所有具有 Any Comments 且 CommentApproved 属性等于 true 的渲染的 Count()。
这是我尝试过的,但由于 Select 方法它不起作用,我有点明白为什么它不起作用,但这是我唯一能弄清楚如何编写实际编译的方法.
private readonly RenderLibContext _db = new RenderLibContext();
....
var commented = _db.Renders.Include("Comments")
.Select(r => r.Comments.Where(c => c.CommentApproved)
.Count());
显然我的控制器中还有一些其他代码,但我想保持问题的重点。我只是无法弄清楚如何让 Count() 方法工作,并告诉我有多少 Renders 具有 ApprovedComment 属性为 true 的 Comments。
【问题讨论】:
标签: c# linq count icollection