Warum erstellt .NET Entity Framework SQL, das eine Unterabfrage und eine linke äußere Verknüpfung in einer einfachen 1: 1-Beziehung verwendet? Ich erwartete eine einfache Verbindung auf den beiden Tischen. Ich verwende . Irgendwelche Ideen?Entity Framework - Warum verwendet EF LEFT OUTER JOINs in einer 1: 1-Beziehung?
Unten ist der Ausgang Ich sehe mit freundlicher Genehmigung der 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"
Sind Ihre Tabellen ordnungsgemäß fremdverschlüsselt? – overslacked
Ja, es gibt einen Fremdschlüssel von MYTABLE1 bis MYTABLE2. –
Kommt das von einer EF-Abfrage? Oder einfach eine Single()? – mxmissile