如何与linq连接?

时间:2014-08-15 18:29:41

标签: c# sql sql-server linq

我在sql server上有这个表:

id_service      name
1               ejemplo 1
2               ejemplo 2     


id_service      id_quality
1               1
1               2

id_quality      quality
1               simple
2               full

我试图得到这个:

id_service      qualities
1               Simple \n Full

我正在和linq一起工作,有什么方法可以吗???

到目前为止我有这个,但它返回两行而不是一行,因为我需要

var services = from service in dc.service

                        join s_quality in dc.service_quality
                        on service.id_service equals s_quality.id_service

                        join qualityObj in dc.quality
                        on s_quality.id_quality equals qualityObj.id_quality

                        select new {service.id_service, qualityObj.quality1};
        GridView1.DataSource = services;
        GridView1.DataBind();

结束网格应如下所示:

    id_service          name              quality available
    1                   Company 1         1 - simple
                                          2 - full
    --------------------------------------------------------
    2                   Company 2         1 - simple  

                                          (this column should have grouped or concat results)

1 个答案:

答案 0 :(得分:0)

var servicios = from servicio in dc.servicio
                join s_calidad in dc.servicio_calidad
                on servicio.id_servicio equals s_calidad.id_servicio

                join calidadObj in dc.calidad
                on s_calidad.id_calidad equals calidadObj.id_calidad

                group new {servicio.id_servicio, calidadObj.calidad1} by servicio.id_servicio into grouping
                select new { groupning.Key, Concat = string.Join(",", grouping.Select(g => g.calidad1)) };

您可以在匿名类型

中为Concat属性编写自己的并置逻辑