TransWikia.com

Convertir Query con select dentro de Select

Stack Overflow en español Asked by Roberto Canela on February 2, 2021

voy empezado el linq, como podria convertir este Query de Sql a Linq.
Gracias a todos de antemano.

Query

SELECT (SELECT 
         TOP 1                             t2.ccodigop 
  FROM   syncsalesuptest.dbo.datasalesupproduct AS t2 
  WHERE  t2.ccodigop = p.ccodigoproducto ) AS codigob, 
t1.codigoproducto                          AS codigoa, 
t1.descripcion                             AS nombre 
FROM     bbd1.dbo.productosa               AS t1 
         ( 
                select top 1 
                                           p2.ccodigop 
                FROM   bbd2.dbo.productosb AS t2 
                WHERE  t2.ccodigop = t1.codigoproducto ) IS NULL 
ORDER BY p.codigoproducto

RESULTADO

CodigoB, CodigoA, Nombre

NULL, 00100010, Producto A

NULL, 20145009, Producto B

NULL, 22138422, Producto C

NULL, 22241719, Producto D

TABLA 1

CODIGOPRODUCTO, DESCRIPCION

00100010, Producto A

20145009, Producto B

22138422, Producto C

22241719, Producto D

TABLA 2

CODIGOPRODUCTO, DESCRIPCION

20145009, Producto B

22241719, Producto D

One Answer

tal vez no me di a explicar bien, ya lo solucione con una expresión lambda y enviando la información filtrada a una tercer lista y me funciono, si tienen alguna observación estoy al pendiente, Saludos.

                    var lstAdd =
                    (from f in 
                        (from a in lstSQLP
                        join b in resultado on a.Ccodigoproducto equals b.codigo
                        into c
                        from b in c.DefaultIfEmpty()
                        select new DataSalesupProduct
                        {
                            Ccodigop = a.Ccodigoproducto,
                            Cdescripcionp = a.Cnombreproducto,
                            Cstatus = a.Cstatusproducto,
                            Cidtask = (
                                        new Func<int>(
                                            () =>
                                            {
                                                if (b == null)
                                                    return 1;
                                                else
                                                    return 0;
                                            }
                                            )
                                        ).Invoke()
                        })
                    where f.Cidtask == 1 && f.Cstatus == 1
                    select new DataSalesupProduct 
                    {
                        Ccodigop = f.Ccodigop,
                        Cdescripcionp = f.Cdescripcionp,
                        Cstatus = f.Cstatus,
                        Cidtask = f.Cidtask
                    }
                    ).ToList();

Answered by Roberto Canela on February 2, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP