-3

我已经阅读了其他一些问题,但无法从他们那里得到答案。

我是Linq的新手。我有 3 张桌子。

城市(ID,名称)

专业(身份证、姓名)

配额(id、cityId、specialityId、qty)

所以,你有一个城市的专业配额。我正在尝试按城市分组列出。像这样的东西:

城市:纽约

  • 专业A:15
  • 专业B:12
  • 专业C:10

城市:巴黎

  • 专业A:10
  • 专长 B:8

等等。

有人可以帮我吗?

加起来

我并不是真的要求准备好的代码。我想我应该更清楚。

我可以加入表格,但我很困惑如何按城市对其进行分组。

例如,这将加入一切

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   

我想按城市对其进行分组,并能够返回一个具有城市名称的对象和一个带有专业和数量的列表。

4

1 回答 1

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}

这样我就有以下内容:

LinqPad 4 的结果

于 2013-01-27T17:34:04.860 回答