首页 > 解决方案 > Enum 上的 EF Core 总和

问题描述

我有一个基于以下域对象的 UserVote 表:

public class UserVote {
    public Guid Id {get;set;}
    public Guid PostId {get;set;}
    public Guid UserId {get;set;}
    public VoteType VoteType {get;set;}
}

public enum VoteType {
    Upvote = 1,
    Downvote = 0
}

如何编写查询以获取唯一 PostId 的 VoteType 总数?

我尝试按 PostId 分组,然后调用Count,但没有成功:

_ctx.UserVotes.Where(x=>x.PostId == PostId).GroupBy(x=>x.PostId).Count()

标签: linqentity-framework-core

解决方案


我真的想通了。我需要将其enum转换为int

_ctx.Where(x => x.PostId == PostId).Sum(x => (int)x.VoteType);


推荐阅读