2009-03-06 10 views
18

के साथ ADO.NET डेटा सेवाएं ado.net डेटा सेवाओं के साथ linq-to-sql का उपयोग करते समय मुझे एक अजीब त्रुटि का सामना करना पड़ रहा है। मेरे पास एक साधारण Silverlight एप्लिकेशन है जो दूरस्थ डेटाबेस से कनेक्ट होता है। मैंने पहले linq-to-sql वर्ग जोड़ा और डिजाइनर पर एक टेबल खींचा। फिर मैंने एक एडीओ.NET डेटा सेवा जोड़ा, एल 2 एस डेटा संदर्भ को इंगित करने के लिए डेटा सेवा संदर्भ को अद्यतन किया।लिंक-टू-एसक्यूएल

कोई समस्या नहीं संकलित।

जब मैं IE में सेवा खोलने तो मैं डेटा सेवा में निम्नलिखित एट्रीब्यूट जोड़ने मैं तुरंत कोई त्रुटि मिलती है:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] 

यह लाता विस्तृत त्रुटि संदेश:

अपवाद संदेश 'डेटा संदर्भ प्रकार' DataClasses1DataContext 'पर, शीर्ष IQueryable प्रॉपर्टी' table1 'है जिसका तत्व प्रकार एक इकाई प्रकार नहीं है। सुनिश्चित करें कि IQueryable संपत्ति इकाई प्रकार का है या निर्दिष्ट IgnoreProperties डेटा संदर्भ प्रकार पर विशेषता इस संपत्ति

यह किसी भी डेटाबेस तालिका मैं L2S डिजाइनर में उपयोग करने के लिए होता है की अनदेखी करने के!

यह त्रुटि क्या है और मुझे यह क्यों मिल रहा है?

+0

प्रत्येक एंडपॉइंट्स को http: // localhost/{serviceName}/{EndPointName} – jdiaz

उत्तर

21

आपको अपनी कक्षाओं को DataServiceKey विशेषता के साथ सजाने की आवश्यकता होगी।

मार्क के ब्लॉग here, और एक एमएसडीएन ब्लॉग here पर अधिक जानकारी (बाद में कई रिश्तों के बारे में कई लोगों के बारे में बात करती है, लेकिन इसमें डेटास्कीकी विशेषता शामिल है)।

+0

द्वारा एक्सेस किया जा सकता है जिसने बहुत कुछ समझाया लेकिन यह मुझे एक्सएमएल प्रारूप में संस्था क्यों नहीं दिखाता? यह सिर्फ डेफॉल्ट टेबल 1 कहता है। मैंने config.SetEntitySetAccessRule ("table1", EntitySetRights.All) का भी उपयोग किया; – jdiaz

+0

यदि टेबल पर कोई प्राथमिक कुंजी सेट नहीं है तो मुझे कैसे पता चलेगा कि कौन सी संपत्ति DataServiceKey के रूप में सेट की जाए? – jdiaz