sqlquery raw query fromsql framework efcore c# linq linq-to-entities

c# - fromsql - raw query linq



Linq-Unión externa izquierda con notación de puntos (1)

¿Cómo haría una unión externa izquierda en linq usando la notación de puntos?

Aquí está la expresión de consulta:

var query = from u in db.Users join d in db.Defects on u.userID equals d.userID into defectsGroup from d in defectsGroup.DefaultIfEmpty() select new { u, d };

Esto es lo que intenté:

var query2 = db.Users.GroupJoin(db.Defects.DefaultIfEmpty(), u => u.userID, d => d.userID, (user, defect) => new { user, defect });

Pero el defecto se muestra como IEnumerable<Defect> lugar de simplemente Defect . También intenté:

var query2 = db.Users.GroupJoin(db.Defects, u => u.userID, d => d.userID, (user, defect) => new { user, defect.DefaultIfEmpty() });

Que simplemente no compila. Todos los ejemplos en línea parecen usar la sintaxis de consulta (más clara).


Creo que quieres esto:

var query2 = db.Users.GroupJoin(db.Defects, u => u.userId, d => d.userID, (u, defectsGroup) => new { u, defectsGroup}) .SelectMany(z => z.defectsGroup.DefaultIfEmpty(), (z, d) => new { z.u, d });

Ver mi blog de Edulinq en expresiones de consulta para más detalles.