2011-08-31 12 views
8

यह मेरी पहली बार एंटिटी फ्रेमवर्क का उपयोग कर रहा है और मुझे कुछ भ्रमित परिणाम मिल रहे हैं। मैं जानता हूँ कि जब मैं इस एसक्यूएल क्वेरी चलाने के लिए एक विशेष तालिका 3 अलग पंक्तियां हैं:इकाई फ्रेमवर्क क्वेरी एक ही पंक्ति को कई बार लौटाती है

SELECT * FROM mytable WHERE service_month = 201012 

जब मैं तथापि ढांचे के खिलाफ इस क्वेरी चलाने के लिए, मैं 3 पंक्तियों मिलता है, लेकिन वे पहली पंक्ति की सभी प्रतियां (वीबी वाक्य रचना कर रहे हैं)।

Dim temp = _context.mytable.Where(Function(x) x.service_month = 201012) 

क्या मैंने कुछ गलत तरीके से स्थापित किया था? इस तरह मैं LINQ से SQL के साथ ऐसा करूँगा इसलिए मुझे लगता है कि मुझे कुछ याद आ रहा है।

+0

मूल्यों की जांच करने के लिए आप 'temp' के साथ क्या कर रहे हैं? –

उत्तर

18

अपने ईडीएमएक्स में अपनी प्राथमिक कुंजी परिभाषा को ठीक करें। (यदि आपकी तालिका में कोई पीके नहीं है, तो एक जोड़ें।) जब सभी पंक्तियां एक ही "कुंजी" लौटाती हैं, तो ईएफ एक ही ऑब्जेक्ट इंस्टेंस देता है।

+1

बिंगो। मैं किसी और द्वारा स्थापित रिपोर्टिंग टेबल का उपयोग कर रहा हूं और उनके पास प्राथमिक कुंजी नहीं थी। धन्यवाद। – gfrizzle

+6

भले ही डेवलपर इसे एक सुविधा कहते हैं, मैं इसे एक बग कह रहा हूं। समाधान के लिए बहुत बहुत धन्यवाद। – Chris

+0

धन्यवाद @ क्रैग। अभी पता चला है कि जिस टेबल पर मैं काम कर रहा हूं, उसके पास कोई प्राथमिक कुंजी नहीं है। –

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