【问题标题】:Linq group + JoinLinq 群 + 加入
【发布时间】:2013-01-27 16:13:53
【问题描述】:

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

我是 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   

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

【问题讨论】:

  • 嗯,你尝试了什么?你知道多少LINQ?这是 LINQ to SQL、实体框架、...?
  • 检查一下 code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b 如果没有成功,请尝试并发布您的代码
  • 你知道如何为这个查询修改 SQL 而不知道如何将它转换为 LINQ?
  • 我添加了一些代码,以便您了解我的意思
  • 是实体框架。该示例使用 Linq to SQL,因为我使用 LinqPad 进行测试。但在应用程序本身中,我将使用实体框架。

标签: c# linq join linq-group


【解决方案1】:

所以,我通过做更多的研究得到了我需要的东西。

实现我正在寻找的代码是:

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}

这样我就有了以下内容:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多