1

我正在查询一个 EF 实体 MatchHistory:

   public partial class MatchHistory
    {
        public System.Guid ApplicantId { get; set; }
        public int BuyerId { get; set; }
        public System.DateTime AppliedOn { get; set; }
        public int MatchResultId { get; set; }
        public System.DateTime ReapplyOn { get; set; }

        public virtual MatchBuyer MatchBuyer { get; set; }
    }

我目前在我的代码中有这个 linq 语句。

            return r.Find()
                .Where(x => x.AppliedOn > cutoff && x.MatchResultId == (int)MatchResult.Accepted)
                .ToList();

这将返回匹配条件的 MatchHistory 类型的所有行。

但是,我想做的是按 BuyerId 分组并按 BuyerId 返回计数。

这是课程,我想输出到:

public class QuotaCount
{
    public int BuyerId { get; set; }
    public int Count { get; set; }
}

还没有完全设法将正确的语法放在一起 - 任何建议都值得赞赏。

4

2 回答 2

2
return r.Find()
        .Where(x => x.AppliedOn > cutoff && x.MatchResultId == (int)MatchResult.Accepted)
        .GroupBy(x => x.BuyerId)
        .Select(x => new QuotaCount { BuyerId = x.Key, Count = x.Count() })
        .ToList();
于 2013-06-19T09:43:46.460 回答
1
return r.Find()
                .Where(x => x.AppliedOn > cutoff && x.MatchResultId == (int)MatchResult.Accepted)
                .GroupBy(mh=>mh.BuyerId).Select(gr=>new QuotaCount{BuyerId=gr.Key,Count=gr.Count});
于 2013-06-19T09:44:43.250 回答