我在 Entity Framework 中设计的实体如下所示:
事件
- 事件 ID
- 日期
- 加速
- 强度
- 设备编号
- 区块标识
- 设备
- 堵塞
堵塞
- 区块标识
- 开始日期
- 日期结束
- 活动
设备
- 设备编号
- 别名
- 集群 ID
- 簇
- 活动
簇
- 集群 ID
- 姓名
- 设备
- 区域 ID
地区
- 区域 ID
- 姓名
- 集群
一个 Event 属于一个 Block,由一个 Device 注册。一个设备属于一个集群,一个集群属于一个区域。
我想要做的是获得一个块中事件的平均加速度和平均强度,组织在一个列表中的对象中,这些对象必须根据我是否想获得一个块的事件的平均值来组织被每个集群或每个区域中的设备检测到。
我应该使用 LINQ 中的哪种查询?
为了更清楚,这些是代表我要执行的操作的 SQL 字符串
select avg(e.Intensity) as average from blocks b, events e, devices d, clusters c, regions r where b.blockid = 1 and b.blockid = e.blockid and e.uniqueid= d.uniqueid and d.clusterid = c.clusterid group by c.clusterid;
select avg(e.Intensity) as average from blocks b, events e, devices d, clusters c, regions r where b.blockid = 1 and b.blockid = e.blockid and e.uniqueid= d.uniqueid and d.clusterid = c.clusterid and c.regionid = r.regionid group by c.regionid;