我有下一个实体:
class Topic
{
public virtual int Id {get; private set;}
public virtual ICollection<Vote> Votes {get; private set; }
}
class Vote
{
public virtual Topic Topic {get; private set;}
public virtual VoteType VotedTo {get; private set;} // enum VotedUp, VotedDown
}
我需要从数据库加载下一个信息 - 所有主题(ID,实际上是名称,但在这个演示案例中并不重要)和另外两个字段CountOfVotedUp, CountOfVotedDown (aggregates)。因此,据我所知,在 SQL 世界中,我们需要联接、分组、大小写和计数。
是否可以使用 LINQ 获取此信息而对 db 的操作更少?我的意思是 N+1,额外的选择,连接等。
我所尝试的只是使用 NH 的 LINQ,但它的查询聚合仅在 Topic.Id 上,我无法计算任何 Votes 集合。