¿Por qué .NET Entity Framework produce SQL que usa una subconsulta y una combinación externa izquierda en una relación simple de 1 a 1? Esperaba ver una simple unión en las dos mesas. Estoy usando Devart Dotconnect for Oracle. ¿Algunas ideas?Entity Framework - ¿Por qué EF usa LEFT OUTER JOIN en una relación de 1 a 1?
A continuación se muestra la salida que veo cortesía del EFTracingProvider:
SELECT
1 AS C1,
"Join1".USER_ID1 AS USER_ID,
...
FROM "MY$NAMESPACE".MYTABLE1 "Extent1"
INNER JOIN (...
FROM "MY$NAMESPACE".MYTABLE2 "Extent2"
LEFT OUTER JOIN "MY$NAMESPACE".MYTABLE1 "Extent3" ON "Extent2".OTHER_ID = "Extent3".OTHER_ID)
"Join1" ON "Extent1".OTHER_ID = "Join1".OTHER_ID1
WHERE "Extent1".USER_ID = :EntityKeyValue1
-- EntityKeyValue1 (dbtype=String, size=6, direction=Input) = "000000"
¿Están sus tablas correctamente con clave externa? – overslacked
Sí, hay una clave externa de MYTABLE1 a MYTABLE2. –
¿Esto es de una consulta de EF? O simplemente un Single()? – mxmissile