¿Está disponible la funcionalidad Unpivot (Not Pivot) en Linq to SQL? ¿Cómo?

He visto publicaciones que te traerían resultados dinámicos, pero no implacables. ¿Necesitas saber si hay alguna forma clara de lograrlo? Si no es así, ¿alguna solución alternativa haría también?

Ejecuta esto para ver los resultados de unpivot en Management Studio

<code>CREATE TABLE [dbo].[Payment](
    [PaymentId] [int] NOT NULL,
    [EmployeeId] [int] NOT NULL,
    [RegularHours] [decimal](18, 0) NULL,
    [OvertimeHOurs] [decimal](18, 0) NULL
) ON [PRIMARY]

go

insert into payment values (1, 1, 40,  10)
insert into payment values (1, 2, 20,  0)

go

select * from payment 

select * from payment unpivot ([hours] for [paytype] in ([RegularHours], [OvertimeHOurs]))a
</code>

La salida para la primera instrucción Select

<code>PaymentId   EmployeeId  RegularHours                            OvertimeHOurs
----------- ----------- --------------------------------------- 
1           1           40                                      10
1           2           20                                      0

(2 row(s) affected)
</code>

La salida para la segunda declaración Select y esto es lo que estoy buscando

<code>PaymentId   EmployeeId  hours                                   paytype
----------- ----------- ----------------------------------------------------- 
1           1           40                                      RegularHours
1           1           10                                      OvertimeHOurs
1           2           20                                      RegularHours
1           2           0                                       OvertimeHOurs

(4 row(s) affected)
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta