来自join的组中的LINQ计数

Dus*_*ine 4 linq linq-to-entities

我有一个LINQ语句,我试图做对,所以也许这样做是错的.我的目标是查询表并加入另一个表来获取计数.

地点
ID,显示

ProfilePlaces
ID,PlaceID,Talk,Hear

基本上PlacesProfilePlaces一对多的关系.我想要得到的数目SUMProfilePlacesTalkHear.Talk并且Hearbit领域.

下面给出了一个独特的列表Places,所以我需要添加TalkHear计数.

var counts = from p in db.Places
             join pp in db.ProfilePlaces on p.ID equals pp.PlaceID
             group new { Place = p } by p.Display;
Run Code Online (Sandbox Code Playgroud)

我想到这样的事情,但没有运气

var counts = from p in db.Places
             join pp in db.ProfilePlaces on p.ID equals pp.PlaceID
             group new { Place = p, 
                         Talk = pp.Count(t => t.Talk == true),
                         Hear = pp.Count(t => t.Hear == true) 
                       } by p.Display;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

rsb*_*rro 10

您想要进行GROUP JOIN以获取每个的计数Place.

var counts2 = from p in places
              join pp in profilePlaces on p.ID equals pp.PlaceID into g
              select new
              {
                   Place = p,
                   CountMeet = g.Count(a => a.Meet),
                   CountTalk = g.Count(a => a.Talk)
              };
Run Code Online (Sandbox Code Playgroud)

以下是MSDN中不同联接的文档:http:
//msdn.microsoft.com/en-us/library/bb311040.aspx