I have a selection query SELECT
that implements CROSS APPLY
and I need to pass it to LINQ
Transact SQL Server
SELECT distinct(PC.ProductoCatalogoId),
P.Nombre + ' ' + PL.Product + ' ' + E.Nombre + ' ' + O.NombreOpcion AS Descripcion,
PC.PrecioVenta
FROM ProductoCatalogos AS PC
INNER JOIN Productos AS P ON PC.ProductoId = P.ProductoId
INNER JOIN EspecificacionCatalogos AS EC ON PC.ProductoCatalogoId = EC.ProductoCatalogoId
INNER JOIN EspecificacionProductos AS EP ON EC.EspecificacionProductoId = EP.EspecificacionProductoId
INNER JOIN Especificaciones AS E ON EP.EspecificacionId = E.EspecificacionId
AND E.EspecificacionId = 2
INNER JOIN Opciones AS O ON EC.OpcionId = O.OpcionId
CROSS APPLY (
SELECT E.Nombre + ' ' + O.NombreOpcion AS 'Product'
FROM ProductoCatalogos AS PC
INNER JOIN Productos AS P ON PC.ProductoId = P.ProductoId
INNER JOIN EspecificacionCatalogos AS EC ON PC.ProductoCatalogoId = EC.ProductoCatalogoId
INNER JOIN EspecificacionProductos AS EP ON EC.EspecificacionProductoId = EP.EspecificacionProductoId
INNER JOIN Especificaciones AS E ON EP.EspecificacionId = E.EspecificacionId
AND E.EspecificacionId = 5
INNER JOIN Opciones AS O ON EC.OpcionId = O.OpcionId
) PL
WHERE P.Nombre LIKE '%ferr%'
LINQ, I have the following query I have not been able to move forward because I do not know how to implement CROSS APPLY
in LINQ
public IEnumerable<ProductoCatalogo> SearchProduct(int colorId, int tallaId)
{
using (var context = new BusinessContext())
{
var result = from pc in context.ProductoCatalogos
join p in context.Productos on pc.ProductoId equals p.ProductoId
join ec in context.EspecificacionCatalogos on pc.ProductoCatalogoId equals ec.ProductoCatalogoId
join ep in context.EspecificacionProductos on ec.EspecificacionProductoId equals ep.EspecificacionProductoId
join e in context.Especificaciones on ep.EspecificacionId equals e.EspecificacionId
join o in context.Opciones on ec.OpcionId equals o.OpcionId
}
}
I hope you can help me.
Greetings!