我已经阅读了其他一些问题,但无法从他们那里得到答案。
我是Linq的新手。我有3张桌子。
城市(身份证,姓名)
专业(身份证,姓名)
配额(id,cityId,specialId,qty)
所以,你有一个城市专业的配额。我想按城市列出这个列表。像这样:
城市:纽约
城市:巴黎
等等。
有人可以帮我吗?
加起来
我并不是真的要求准备好代码。我想我应该更清楚。
我可以加入这些表格,我很困惑,我将如何按城市进行分组。
例如,这将加入所有内容
from cota in Cotas
join cidade in Cidades on cota.CidadeId equals cidade.Id
join especialidade in EspecialidadeMedicas on cota.EspecialidadeId equals especialidade.Id
select new { Qty = cota.Quantidade, City = cidade.Nome, Specialty = especialidade.Nome}
Obs:语言是葡萄牙语,我翻译了对象的创建,但Quantidade是Quantity,EspecialidadeMedica是医学专业,Cidade是City。
此查询的结果是:
Qty | City | Specialty
10 Campinas Pediatria
15 Campinas Cardiologia
5 Campinas Ortopedia
10 Sumaré Pediatria
15 Sumaré Cardiologia
14 Hortolândia Cardiologia
5 Hortolândia Ortopedia
我希望按城市分组,并且能够返回具有城市名称和具有专业和数量的列表的对象。
答案 0 :(得分:0)
所以,我通过做更多研究得到了我所需要的东西。
实现我想要的代码是:
from cidade in Cidades
join lista in
(
from cota in Cotas
join especialidade in EspecialidadeMedicas on cota.EspecialidadeId equals especialidade.Id
select new {
CidadeId = cota.CidadeId, CotaId=cota.Id, Quantidade=cota.Quantidade,
EspecialidadeId=especialidade.Id, Especialidade=especialidade.Nome
}
) on cidade.Id equals lista.CidadeId into listaCota
select new {CityId=cidade.Id, cityName=cidade.Nome, quotaList=listaCota}
这样我有以下几点: