Query LINQ, Group by with Group Join

0

I have this query in Transact-SQL

SELECT t_productospreguntas.d_pregunta,
t_productos.d_titulo,
t_productosimagenes.d_archivo,
t_productosrespuestas.d_respuesta
FROM t_productospreguntas
INNER JOIN t_productos
ON t_productospreguntas.c_usuario = t_productos.c_usuario
AND t_productospreguntas.c_empresa = t_productos.c_empresa
AND t_productospreguntas.c_producto = t_productos.c_producto
LEFT OUTER JOIN  t_productosimagenes
ON t_productos.c_usuario = t_productosimagenes.c_usuario
AND t_productos.c_empresa = t_productosimagenes.c_empresa
AND t_productos.c_producto = t_productosimagenes.c_producto
AND t_productos.c_consec = t_productosimagenes.c_consec
LEFT OUTER JOIN t_productosrespuestas
ON t_productospreguntas.c_usuario = t_productosrespuestas.c_usuario
AND t_productospreguntas.c_empresa = t_productosrespuestas.c_empresa
AND t_productospreguntas.c_producto = t_productosrespuestas.c_producto
AND t_productospreguntas.c_consecpregunta = t_productosrespuestas.c_consecpregunta
WHERE t_productospreguntas.c_usuario = 1
AND t_productospreguntas.c_empresa = 1 
AND t_productospreguntas.c_producto = 1 
AND t_productos.c_status <> 3 
AND t_productosimagenes.c_imagen = 1
AND t_productosimagenes.c_tamaño = 4

I tried to do it with the following query in linq but it does not give me the expected result.

From u In db.t_productospreguntas
Group Join v In db.t_productosrespuestas
On u.c_usuario Equals v.c_usuario And
u.c_empresa Equals v.c_empresa And
u.c_producto Equals v.c_producto And
u.c_consecpregunta Equals v.c_consecpregunta
Into uv = Group
From v In uv.DefaultIfEmpty
Join w In db.t_productos
On u.c_usuario Equals w.c_usuario And
u.c_empresa Equals w.c_empresa And
u.c_producto Equals w.c_producto
Group Join x In db.t_productosimagenes
On w.c_usuario Equals x.c_usuario And
w.c_empresa Equals x.c_empresa And
w.c_producto Equals x.c_producto And
w.c_consec Equals x.c_consec
Into wx = Group
From x In wx.DefaultIfEmpty
Where u.c_usuario = piUsuario And
u.c_empresa = piEmpresa And
u.c_producto = piProducto And
w.c_status <> enumEstatus.iRECONFIGURADO And
x.c_imagen = 1 And
x.c_tamaño = enumImgTamaños.i160x160
Group v.d_respuesta
By u.d_pregunta, w.d_titulo, x.d_archivo
Into g = Group
Select d_pregunta, d_titulo, d_archivo, g

I hope you could guide me, since I'm consulting in SQL but I'm new with linq.

Greetings

    
asked by Yair GR 04.09.2018 в 05:03
source

0 answers