Linq to SQLを使い始めたばかりなので、初心者の質問は許してください。 Linq to SQL(VB.NET)で次の(機能する)クエリを再現しようとしています。
Select
f.Title,
TotalArea = Sum(c.Area)
From Firms f
Left Join Concessions c on c.FirmID = f.FirmID
Group By f.Title
Order by Sum(c.Area) DESC
(会社には多くの譲歩があり、譲歩には1ヘクタールの面積があります。すべての譲歩の合計面積が最も大きい会社から始めて、会社のリストが必要です。)
私はこのようなものをLinq to SQLの同等物として想像しています(pseudo-code)
From f As Firm In Db.Firms _
Order By f.Concessions.Sum(Area)
...しかし、それは正しくありません。誰かが私を正しい方向に向けることができますか?
これが正しいLinq to SQLの等価物です
From c In Concessions _
Join f In Firms on f.FirmID equals c.FirmID _
Group by f.Title _
Into TotalArea = sum(c.OfficialArea) _
Order by TotalArea Descending _
Select Title, TotalArea
LinqPad を教えてくれた@CMSに感謝します。なんて素晴らしいツールでしょう。あなたはそれをあなたのデータベースに向けるだけで、あなたはオフで稼働しています。何百ものサンプルが含まれているだけでなく、含まれているライブデータベースに対しても実行できます。提供されたサンプルから数分で上記のクエリに到達できました。