【发布时间】:2015-07-18 09:22:01
【问题描述】:
我知道这个网站上有很多相关的主题,但我就是找不到适合我的东西。如果它看起来太像复制品,我很抱歉。无论如何,我的问题是我正在尝试将以下 SQL 查询转换为 LINQ,但到目前为止我尝试的任何方法似乎都不起作用。 查询是:
select top(10) a.AddressText, t.Name, count(e.FirstName) as [EmployeesCount]
from Addresses a
join Employees e
on a.AddressID = e.AddressID
join Towns t
on a.TownID = t.TownID
group by a.AddressText, t.Name
order by [EmployeesCount] desc, t.Name asc
到目前为止我得到的是:
SoftUniEntities context = new SoftUniEntities();
var addresses = from a in context.Addresses.Take(10) join e in context.Employees on a.AddressID equals e.AddressID
join t in context.Towns on a.TownID equals t.TownID into addressesWithTownsAndEmployees
orderby addressesWithTownsAndEmployees.Count() descending, a.Town.Name ascending
select new { Address = a.AddressText, TownName = a.Town.Name, EmployeesCount = addressesWithTownsAndEmployees.Count() };
问题在于计数。它的结果是不正确的,这是完全正常的,因为我知道我搞砸了计数选择。
【问题讨论】:
-
请告诉我们,到目前为止您尝试了哪些方法,以及出现问题的位置。
-
我使用当前的 linq 查询编辑了我的帖子
标签: sql-server linq join count