音乐家写歌。歌曲在空中播放。
我有数据库表 Musicians、Songs 和 AirTimes。AirTimes 表条目包含有关在哪个日期播放了哪首歌以及播放了多少分钟的信息。
我有与表格相对应的音乐家、歌曲、通话时间等课程。这些类具有指向另一个实体的导航属性。下面的箭头代表导航。
音乐家 <--> 歌曲 <--> 通话时间
从数据库中,我必须检索他/她的歌曲获得 AirTime 的所有音乐家和日期。另外,我想显示特定日期播放的歌曲数量以及该日期播放的分钟数。
在 Microsoft SQL 中,我会这样做:
select
dbo.Musicians.LastName
, dbo.AirTimes.PlayDate
, count(dbo.AirTimes.PlayDate) as 'No. of entries'
, sum(dbo.AirTimes.Duration) as 'No. of minutes'
from dbo.Musicians
left outer join dbo.Songs
on dbo.Musicinas.MusicianId = dbo.Songs.MusicianId
left outer join dbo.AirTimes
on dbo.Songs.SongId = dbo.AirTimes.SongId
and '2014-07-01T00:00:00' <= dbo.AirTimes.PlayDate
and dbo.AirTimes.PlayDate <= '2014-07-31T00:00:00'
group by
dbo.Musicians.LastName
, dbo.AirTimes.PlayDate
order by
dbo.Musicians.LastName
, dbo.AirTimes.PlayDate
任何人都可以将其“翻译”成 linq-to-entitese 吗?
2012 年 8 月 9 日更新
我无法确认 grudolf 的计划是否符合我的要求。我用不同的技术完成了一些事情。尽管如此,我接受他/她的回答。