刚开始使用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
(一家公司有很多特许权;特许经营权的面积是公顷。我想要一份公司清单,从那些拥有所有特许权总面积最大的公司开始。)
我正在想象像Linq to SQL等价的东西(伪代码)
From f As Firm In Db.Firms _
Order By f.Concessions.Sum(Area)
......但那不对。有人能指出我正确的方向吗?
答案 0 :(得分:28)
这是正确的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
感谢@CMS指点我LinqPad - 这是一个很棒的工具。您只需将其指向您的数据库即可关闭并运行。不仅包括数百个样本,而且您可以针对包含的实时数据库运行它们。从提供的样本开始,我能够在几分钟内得出上述查询。
答案 1 :(得分:6)