ミュージシャンは曲を書きます。曲は放送中に再生されます。
私はデータベーステーブルMusicians、Songs、AirTimesを持っています。AirTimesテーブルのエントリには、どの曲がどの日付で何分間再生されたかに関する情報が保持されます。
テーブルに対応するミュージシャン、ソング、エアタイムのクラスがあります。クラスには、他のエンティティを指すナビゲーションプロパティがあります。下の矢印はナビゲーションを表しています。
ミュージシャン<->歌<->AirTime
データベースから、すべてのミュージシャンと彼/彼女の曲が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のスキームが私が望んでいたことを実行していることを確認できません。私は別のテクニックで物事を成し遂げました。それにもかかわらず、私は彼/彼女の答えを受け入れます。