0

我正在尝试使用 linq 到实体按站点创建聚合数据列表。

代码优先模型有一个 TrialParticipant 类,该类包含一个表示一对多关系 StudyCentre 的属性和一个 AdverseEvents 的 ICollection,表示多对一关系。

除其他细节外,我想知道每个 StudyCentre 的 AdverseEvents 数量。

编码

var returnVal =
    (from participant in _db.TrialParticipants
     group participant by participant.StudyCentreId into centre
     select new StudyCentreStatistic
     { 
        TotalNo = centre.Count(),
        ...
        AdverseEventNo = centre.Sum(participant=>participant.AdverseEvents.Count)
     }).ToList();

但这会产生一个错误:

解析查询时出错。[ 令牌行号 = 72,令牌行偏移量 = 4,错误令牌 = SELECT

任何关于如何做到这一点的想法将不胜感激。谢谢你。

4

1 回答 1

1

如果有导航属性StudyCentre.Participants,您可以执行以下操作:

from s in _db.StudyCentres
select new
{ 
    s.StudyCentreId,
    AdverseEventCount = s.Participants.SelectMany(p => p.AdverseEvents).Count()
}
于 2012-08-21T18:07:32.010 回答