【问题标题】:How can i made a pivot for this我怎样才能为此做一个支点
【发布时间】:2011-12-21 01:05:30
【问题描述】:

我有 linq 以这种格式返回我的数据

Servicio2 | Indicador  | Accion1
Servicio2 | Indicador  | Accion2
Servicio1 | Indicador1 | Accion1
Servicio1 | Indicador1 | Accion2

有没有办法将输出转换成这个

Servicio2 | Indicador  | Accion1 , Accion2
Servicio1 | Indicador1 | Accion`, Accion2

基于这个 linq

from A in db.IndicadorServicioAccion
                            .Include("Accion")
                            .Include("IndicadorServicio")
                            .Include(i => i.IndicadorServicio.Indicador)
                    where
                        A.Usuario.IDUsuario == id
                        && A.Permiso == true
                select A) 

更新基于@Aducci 回答

(from A in db.IndicadorServicioAccion
                            .Include("Accion")
                            .Include("IndicadorServicio")
                            .Include(i => i.IndicadorServicio.Indicador)
                    where
                        A.Usuario.IDUsuario == id
                        && A.Permiso == true
                group A by new { A.IndicadorServicio.Indicador.nombreIndicador, A.IndicadorServicio.Servicio.Descripcion } into ag
                select new
                     {
                        ag.Key.nombreIndicador,
                        ag.Key.Descripcion,
                        Acciones = ag.Select(x => x.Accion.Descripcion) 
                     }).AsEnumerable().Select(xx => new
                     {
                       xx.Descripcion,
                       xx.nombreIndicador,
                       xx.Acciones.Aggregate((current, next) => current + ", " + next)
                     });

Bet 出现此错误

`Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.`

【问题讨论】:

    标签: linq entity-framework-4.1


    【解决方案1】:

    第一部分使用您的 linq-entities 提供程序,但在 AsEnumerable 之后它使用 Linq to 对象以返回逗号分隔列表

    我改变了最后一个属性给它一个别名

    AggregateProperty = xx.Acciones.Aggregate((current, next) => current + ", " + next)

     (from A in db.IndicadorServicioAccion
                                .Include("Accion")
                                .Include("IndicadorServicio")
                                .Include(i => i.IndicadorServicio.Indicador)
                        where
                            A.Usuario.IDUsuario == id
                            && A.Permiso == true
                    group A by new { A.IndicadorServicio.Indicador.nombreIndicador, A.IndicadorServicio.Servicio.Descripcion } into ag
                    select new
                         {
                            ag.Key.nombreIndicador,
                            ag.Key.Descripcion,
                            Acciones = ag.Select(x => x.Accion.Descripcion) 
                         }).AsEnumerable().Select(xx => new
                         {
                           xx.Descripcion,
                           xx.nombreIndicador,
                           AggregateProperty = xx.Acciones.Aggregate((current, next) => current + ", " + next)
                         });
    

    【讨论】:

    • 您好,感谢您根据您的查询提出问题,我修改了我的问题,因为添加您的查询时出错
    猜你喜欢
    • 2022-11-09
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多