次のエンティティがあります:
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、実際には名前ですが、このデモの場合は問題ではありません) と、さらに 2 つのフィールドCountOfVotedUp、CountOfVotedDown (集計)です。したがって、SQL の世界では、結合、グループ化、ケース、およびカウントが必要であると理解しています。
db での操作が少ない LINQ でこの情報を取得することは可能ですか? N+1、追加の選択、接続などを意味します。
私が試したのは、NHのLINQを使用することだけですが、Topic.Idでのみクエリ集計を行い、投票コレクションをカウントできませんでした。