2010-05-26 16 views
15

मेरे पास एक उत्पाद इकाई है, जिसमें 0 या 1 "बेस्टसेलर" इकाइयां हैं। किसी कारण जब मैं कहता हूँ के लिए:बहुत सारे बाएं बाहरी इकाई फ्रेमवर्क 4 में शामिल हो जाते हैं?

db.Products.OrderBy(p => p.BestSeller.rating).ToList(); 

एसक्यूएल मैं एक "अतिरिक्त" बाहरी है मिल में शामिल होने के (नीचे)। और यदि मैं दूसरे 0 या 1 संबंध जहाज पर जोड़ता हूं, और दोनों द्वारा ऑर्डर करता है, तो मुझे बाहरी जुड़ता है। ऐसा लगता है जैसे प्रत्येक ऐसी इकाई एक के बजाय 2 बाहरी जोड़ों का उत्पादन कर रही है। LINQ से SQL वास्तव में व्यवहार करता है जैसा कि आप उम्मीद करेंगे, बिना अतिरिक्त जुड़ने के।

क्या किसी और ने इसका अनुभव किया है, या इसे ठीक करने के बारे में जानते हैं?

SELECT 
[Extent1].[id] AS [id], 
[Extent1].[ProductName] AS [ProductName] 
FROM [dbo].[Products] AS [Extent1] 
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent2] ON [Extent1].[id] = [Extent2].[id] 
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent3] ON [Extent2].[id] = [Extent3].[id] 
ORDER BY [Extent3].[rating] ASC 
+0

ऐसा लगता है जैसे कि यह केवल एक 0..1 इकाई के लिए ऐसा करता है। यदि संस्थाओं का संग्रह होता है, तो संग्रह को लोड करने में उत्सुकता के परिणामस्वरूप सही एकल बाहरी शामिल होता है। –

उत्तर

2

मैं यहाँ एक ऐसी ही सवाल का जवाब देने जूली Lerman पूछा:

कृपया देखें Simple Linq query has duplicated join against same table?

+1

यह जून सीटीपी में तय किया गया है - http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx –

2

वह अतिरिक्त बाहरी हिस्सा काफी अनिवार्य प्रतीत होता है। मुझे लगता है कि इकाई फ्रेमवर्क डिजाइन टीम से संपर्क करना सबसे अच्छा है। वे जान सकते हैं कि यह एक बग है और देखें कि क्या ऐसा कुछ है जिसे अगले संस्करण में हल करने की आवश्यकता है। आप http://blogs.msdn.com/b/efdesign/contact.aspx

+2

अच्छी कॉल - बस यही किया। सॉफ़्टवेयर को बेहतर बनाने में सहायता के लिए समय लेने के लिए –

+1

+1! – JohnB

+0

सिर्फ उत्सुक है कि आपने ईएफ टीम से वापस सुना है या नहीं? मैं यह जानकर उत्सुक हूं और जानना चाहता हूं कि क्या वे इसे एक बग या "फीचर" कह रहे हैं। सोचा कि मैं टीम से संपर्क करने से पहले यहां पूछूंगा। –

1

पर यह संपर्क कर सकते हैं यह एक बग हो सकता है, लेकिन ऐसा लगता है कि यह इतना आसान उदाहरण है कि यह अजीब बात है कि बग पकड़ा और तय नहीं किया गया है।

क्या आप अपना ईएफ मॉडल देख सकते हैं।

क्या बेस्टसेलर तालिका दो बार जोड़ा गया है, या क्या तालिकाओं के बीच संबंधों में एक डुप्लिकेशंस है।

+0

एसएसडीएल भी जांचें और सुनिश्चित करें कि तालिका सही ढंग से मैप की गई है। –

+0

मैंने इकाई मॉडल के एक्सएमएल की जांच की, और मुझे कुछ भी मुझ पर कूदने को नहीं मिला। उम्मीद है कि ईएफ ब्लॉग पर लोग कुछ अंतर्दृष्टि प्रदान कर सकते हैं। –

+0

शामिल करें अभिशाप .. ईएफ टीम को इसे बड़े पैमाने पर अनुकूलित करने की आवश्यकता है! –

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