2009-02-03 13 views
16

ADO.Net डेटा सेवाओं ग्राहक का उपयोग करते समय फोन करके एक इकाई को ताज़ा करने के LoadProperty:संसाधन खंड के लिए नहीं मिला 'संपत्ति'

ctx.BeginLoadProperty(this, "Owner", (IAsyncResult ar) => ... 

यह सर्वर पर कोई त्रुटि फेंकता है तो संपत्ति null

है

Error: Exception Thrown: System.Data.Services.DataServiceException: Resource not found for the segment 'Owner'. at System.Data.Services.RequestDescription.GetSingleResultFromEnumerable(SegmentInfo segmentInfo) at System.Data.Services.DataService1.CompareETagAndWriteResponse(RequestDescription description, ContentFormat responseFormat, IDataService dataService)
at System.Data.Services.DataService1.SerializeResponseBody(RequestDescription description, IDataService dataService) at System.Data.Services.DataService1.HandleNonBatchRequest(RequestDescription description) at System.Data.Services.DataService`1.HandleRequest()

समस्या यह है कि ग्राहक नहीं जानता कि संपत्ति null है या अभी तक अभी तक पॉप्युलेट नहीं हुई है। संपत्ति मालिक Vehicle से Customer पर एक लिंक है।

कोई विचार क्या गलत है?

धन्यवाद

उत्तर

19

प्राथमिक कुंजी पर क्वेरीिंग अपवाद उत्पन्न करती है जब कुंजी मौजूद नहीं होती है। कामकाज इस स्थिति में एक डमी सच्ची अभिव्यक्ति को जोड़ना है (उदाहरण: 1 == 1 & & आइटम.आईडी == XXX)।

डमी अभिव्यक्ति के बिना ADO.NET अनुरोध है:

http: //localhost//test.svc/Role(XXX)

डमी हालत के साथ

, अनुरोध है:

http: //localhost//test.svc/Role()?$filter=true and (Id eq 1)

अपेक्षित व्यवहार (शून्य लौटे) दूसरे में सही है मामला।

+0

यह [अन्य उत्तर] (http://stackoverflow.com/questions/505761/resource-not-found-for-segment-property/5987733#5987733) एक बेहतर विकल्प है। अधिक पठनीय कोड के लिए बनाता है। –

3

मैं प्राप्त हो गया है एक भी त्रुटि "खंड 'संपत्ति' के लिए नहीं मिला संसाधन"। मेरा प्रतीत होता है कि जहां खंड मैं प्राथमिक कुंजी देख रहा हूं। मुझे कुछ संसाधन मिल गए हैं जो कहते हैं कि यह एक प्राथमिक कुंजी का उपयोग करते समय एक त्रुटि फेंक देगा (यहां तक ​​कि FirstOrDefault() का उपयोग करते समय भी (जैसा कि अन्य खंडों के विपरीत है जो परिणाम प्रदान नहीं करते हैं)। मुझे लगता है कि आपके साथ एक ही चीज हो रही है।

+0

मामला हो लगता है, मुझे आश्चर्य है कि क्यों? – gimpy

34

सेट सच करने के लिए सेवा संदर्भ से IgnoreResourceNotFoundException संपत्ति:

svc.IgnoreResourceNotFoundException = true; 
+0

ध्यान दें कि यह संपत्ति .NET 3.5 SP1 में शामिल की गई थी। –

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