¡Mi cerebro parece estar lleno ahora! Estoy usando LINQ to Entity, y necesito obtener algunos datos de una tabla que NO existe en otra tabla.LINQ to Entity, uniéndose a las tablas NOT IN
Por ejemplo: Necesito groupID, groupname y groupnumber de TABLE A donde no existen en TABLE B. El groupID existirá en TABLE B, junto con otra información relevante. Las tablas no tienen ninguna relación. En SQL sería simplemente (no es una solución más elegante y eficaz, pero quiero pintar un cuadro de lo que necesito)
SELECT
GroupID,
GroupName,
GroupNumber,
FROM
TableA
WHERE
GroupID NOT IN (SELECT GroupID FROM TableB)
¿Hay una manera fácil/elegante de hacer esto utilizando el marco de la entidad/LINQ a la entidad? Ahora tengo un montón de consultas que llegan al db, luego comparo, etc. Es bastante complicado.
¿Debería la cláusula interna ser 'y => y.GroupID == x.GroupID'? (devuelve falso si hay elementos en 'TableB' con este' GroupID') – Hannele
@Hannele Técnicamente es el mismo, y probablemente más legible. Por alguna razón, fui creado para hacer una lógica booleana al revés. – Nix
Estoy de acuerdo con Hannele, creo que debería ser Where (x =>! Context.TableB.Any (y => y.GroupID == x.GroupID)) – Sam