2010-09-05 13 views
9

के लिए dbml फ़ाइल के अंदर एसोसिएशन उत्पन्न करने में समस्या मैंने अपनी प्रोजेक्ट में एक डीबीएमएल फ़ाइल बनाई है, और उसके बाद डेटाबेस से दो टेबल को डिज़ाइनर में खींच लिया है। ऑर्डर हेडर और ऑर्डर लाइनों के लिए यह टेबल है, और ऑर्डर लाइनों में हेडर ऑर्डर करने के लिए एक विदेशी कुंजी है ताकि इसे कई रिश्तों में से एक बना दिया जा सके।LINQ से SQL

जैसे ही दो टेबल डिज़ाइनर पर खींचे जाते हैं, एसोसिएशन तीर दिखाई देता है और सब ठीक से दिखता है। एसोसिएशन के गुणों में, चाइल्ड प्रॉपर्टी ट्रू पर सेट है, एक्सेस सार्वजनिक है, विरासत मोड (कोई नहीं) है, नाम ऑर्डरलाइन है (मूल रूप से टाउडरलाइन, लेकिन मेरे द्वारा ऑर्डरलाइन कहलाता है।

समस्या यह है कि नहीं अवधियाँ संपत्ति बनाई गई है। मैं उत्पन्न सीएस फ़ाइल भी मैन्युअल रूप से जाँच की, और न शब्द अवधियाँ या एसोसिएशन वहाँ पाया जाता है।

मैं गलत यहाँ क्या कर रहा हूँ?

+0

मुझे यह समस्या दो बार अब थी और किसी भी तरह से समाधान के लिए खोज करते समय मैं इस प्रश्न को नहीं ढूंढ पाया (कम से कम पहले नहीं)। प्रश्न पाठ स्वयं ठीक है, लेकिन प्रश्न का नाम कुछ हद तक व्यापक है यह समझना मुश्किल है कि यह सही सवाल है। नतीजतन मैंने अपना खुद का लिखने की कोशिश करते समय केवल प्रश्न ढूंढना समाप्त कर दिया (मुझे लगता है कि पाठ आधारित खोज ने यह अच्छी तरह से काम किया है)। मैंने जो अनौपचारिक प्रश्न लिखा था, उसका शीर्षक था "एसोसिएटेड टेबल मॉडल से सुलभ नहीं है"। – jahu

उत्तर

22

सुनिश्चित करें कि प्रत्येक वर्ग एक प्राथमिक कुंजी है सुनिश्चित करें।


यदि आपकी ऑब्जेक्ट्स में डीबीएमएल में प्राथमिक कुंजी प्रॉपर्टी नहीं है, तो LinqToSql ऑब्जेक्ट ट्रैकिंग उन ऑब्जेक्ट्स को नहीं देख सकती है और रिलेशनल गुण उत्पन्न नहीं होंगे।

+0

वह वास्तव में समस्या थी। मैंने यह भी नहीं सोचा था कि जिस डेटाबेस के खिलाफ मैं काम कर रहा था, उसके पास उचित प्राथमिक कुंजी सेट नहीं थीं। ऑर्डरलाइन तालिका में कोई प्राथमिक कुंजी नहीं थी। जब प्राथमिक कुंजी बनाई गई, तो यह अपेक्षित के रूप में काम किया। –