2010-03-17 10 views
6

.NET इकाई फ्रेमवर्क एसक्यूएल का उत्पादन क्यों करता है जो एक सरल 1-से-1 रिश्ते पर एक सबक्वायरी और बाएं बाहरी जुड़ने का उपयोग करता है? मुझे दो टेबलों पर एक साधारण शामिल होने की उम्मीद है। मैं Devart Dotconnect for Oracle का उपयोग कर रहा हूँ। कोई विचार?इकाई फ्रेमवर्क - ईएफ 1-से-1 संबंध में बाएं बाहरी जॉइन का उपयोग क्यों करता है?

नीचे उत्पादन होता है मैं 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" 
+0

क्या आपकी टेबल सही ढंग से विदेशी-कुंजी हैं? – overslacked

+0

हां, MYTABLE1 से MYTABLE2 तक एक विदेशी कुंजी है। –

+0

क्या यह एक ईएफ क्वेरी से है? या बस एक सिंगल()? – mxmissile

उत्तर

0

डेटाबेस सिद्धांत रूप में, यह माना जाता है कि एक एक-से-एक रिश्ते में, एक तरफ एक पंक्ति इसी से पहले बनाया जाना चाहिए दूसरी तरफ पंक्ति। यदि आपने बाहरी शामिल होने का उपयोग नहीं किया है, तो आप उन पंक्तियों को सूचीबद्ध नहीं कर सकते जिनके पास कोई मिलान नहीं था।

संबंधित मुद्दे