来自join的组中的LINQ计数

时间:2011-06-27 05:05:35

标签: linq linq-to-entities

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

地方
ID,显示

ProfilePlaces
ID,PlaceID,Talk,Hear

基本上Places在一对多关系中有ProfilePlaces。我想获得SUMProfilePlaces Talk的{​​{1}}个数字。 HearTalkHear个字段。

以下为我提供了bit的唯一列表,因此我需要添加PlacesTalk次。

Hear
我认为这样的事情,但没有运气

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;

感谢您的帮助。

1 个答案:

答案 0 :(得分: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)
              };

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